我写了一个在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的文件仍然是相同的内容-->;跳过它,不要添加到我的本地数据库中。在
您可以使用与amazons3中的对象相关联的
ETag
来比较对象并确定它们是否相同。它是对象内容的MD5校验和。在如果新版本与前一版本具有相同的ETag,只需跳过它。在
相关问题 更多 >
编程相关推荐