boto3 版本和添加变更的文件夹

2024-10-03 11:16:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了一个在boto3桶里上传文件的调用。 在调用中,您需要传入filename,bucket。 然后将文件上传到bucket。 但是,我尝试为每个上传到bucket的文件添加版本。为了实现这一点,我为我的bucket启用了版本控制;然后为我上传到bucket的文件提供了版本。在

bucketFile = s3.meta.client.upload_file(filename, str(bucket),filename)

然后为了得到我上传的那个文件的对象版本,我执行以下操作

^{pr2}$

下面的代码为我上传到这个bucket的每个文件提供了一个版本id。 所以我想做的是 --->;获取文件的版本 ---->;将该版本附加到本地数据库中,如下所示

versionsAdd = versions(version_url=versionID, filename=filename)

然而,对我来说困难的部分是,如果文件内容仍然相同,我不想附加该版本。无论文件内容是什么,boto3都会给我versionID。所以对我来说,我希望能够读取一个文件,并将其与我的bucket中现有的文件进行比较。如果对某个文件进行了更改,我只想将其附加到本地数据库中我的版本下。如果上传到bucket的文件仍然是相同的内容-->;跳过它,不要添加到我的本地数据库中。在


Tags: 文件gt版本client数据库内容s3bucket
1条回答
网友
1楼 · 发布于 2024-10-03 11:16:33

您可以使用与amazons3中的对象相关联的ETag来比较对象并确定它们是否相同。它是对象内容的MD5校验和。在

如果新版本与前一版本具有相同的ETag,只需跳过它。在

相关问题 更多 >