【发布时间】:2016-11-17 22:43:15
【问题描述】:
我已经编写了一个调用来在 boto3 存储桶中上传文件。 在调用中,您需要传入文件名、存储桶。 然后它将文件上传到存储桶。 但是,我正在尝试为上传到存储桶的每个文件添加版本。因此,为了实现这一点,我为我的存储桶启用了版本控制;然后给了我上传到该存储桶的文件的版本。
bucketFile = s3.meta.client.upload_file(filename, str(bucket),filename)
然后要获取我上传的那个文件的对象版本,我执行以下操作
objectSummary = s3.ObjectSummary(bucket,filename)
object = objectSummary.get()
versionID = object.get('VersionId')
以下代码为我上传到该存储桶的每个文件提供了一个版本 ID。 所以我想做的是 ---> 获取文件的版本 ----> 像这样将该版本附加到我的本地数据库中
versionsAdd = versions(version_url=versionID, filename=filename)
但是对我来说困难的部分是,如果文件内容仍然相同,我不想附加该版本。无论文件内容是什么,boto3 都会给我 versionID。所以对我来说,我希望能够读取文件并将其与存储桶中的现有文件进行比较。如果对文件进行了更改,我只想将其附加到本地数据库中的我的版本下。如果上传到存储桶的文件仍然是相同的内容 --> 跳过它,不要添加到我的本地数据库中。
【问题讨论】:
标签: python amazon-web-services amazon-s3 boto3