boto3版本,如果对文件进行了更改,则附加

比普洛夫

我写了一个电话,要求将文件上传到boto3存储桶中。在通话中,您需要传递文件名Bucket。然后它将文件上传到存储桶。但是,我正在尝试为每个上传到存储桶的文件添加版本。因此,要实现对存储桶的版本控制;然后为我提供了我上传到该存储桶的文件的版本。

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。因此,对于我来说,我希望能够读取文件并将其与存储桶中的现有文件进行比较。如果对文件进行了更改,那么我只想将其附加在本地数据库的版本下。如果上传到存储桶的文件内容仍然相同->只需跳过该文件,而不添加到我的本地数据库中即可。

约翰·罗滕斯坦

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Atlassian Bamboo:如果对特定文件进行了更改,请不要触发构建

来自分类Dev

如何检查是否在DataGridView中进行了任何更改

来自分类Dev

检查Git是否以编程方式进行了更改

来自分类Dev

{%如果使用两个字段%进行了更改}

来自分类Dev

对于SCSI,是否对“附加长度”的定义进行了更改?

来自分类Dev

版本6.1和6.2之间对IBM Worklight JSONStore API进行了哪些更改?

来自分类Dev

找出谁对Powershell对文件进行了最后更改?

来自分类Dev

我已经在python3中使用协议3对文件进行了腌制,现在我需要使用python2对其进行腌制,该怎么办?

来自分类Dev

数据集对新行进行了更改

来自分类Dev

sha256sum为什么对文件末尾和输入末尾信号进行了不同处理?

来自分类Dev

即使对节点js进行了更改,Node js也会在控制台中显示旧文件

来自分类Dev

cs50的可读性。在“如果”行无故进行了有价值的更改

来自分类Dev

Bash评估在版本4.4中进行了更改?

来自分类Dev

notifydataset在片段内部使用listview进行了更改

来自分类Dev

在Rails 3和Rails 4之间进行了哪些路由更改?

来自分类Dev

derbyJS-实时了解谁进行了更改

来自分类Dev

对cakephp视图文件进行了更改,但更改未在浏览器中显示

来自分类Dev

检查Git是否以编程方式进行了更改

来自分类Dev

jQuery-如果对textarea进行了更改,则无法提交表单

来自分类Dev

git:显示哪些文件在内核3.18.6和3.18.7之间进行了更改

来自分类Dev

如何检查rsync是否对bash进行了任何更改?

来自分类Dev

DBD / DBI:如果对程序进行了分叉,则会崩溃

来自分类Dev

如果我使用从任何xcode 6版本生成的ipa进行了测试,则未收到AWS SNS通知,该如何解决?

来自分类Dev

PHP登录表单(无sql)-针对文本文件记录进行了验证-未进行验证

来自分类Dev

在新版本的Angle中进行了动画处理

来自分类Dev

cp命令在不同的Ubuntu版本上进行了额外的复制以克隆文件夹

来自分类Dev

数据集对新行进行了更改

来自分类Dev

仅保存如果进行了更改

来自分类Dev

使用批处理文件对 desktop.ini 进行了更改,但文件夹图标不会更改

Related 相关文章

  1. 1

    Atlassian Bamboo:如果对特定文件进行了更改,请不要触发构建

  2. 2

    如何检查是否在DataGridView中进行了任何更改

  3. 3

    检查Git是否以编程方式进行了更改

  4. 4

    {%如果使用两个字段%进行了更改}

  5. 5

    对于SCSI,是否对“附加长度”的定义进行了更改?

  6. 6

    版本6.1和6.2之间对IBM Worklight JSONStore API进行了哪些更改?

  7. 7

    找出谁对Powershell对文件进行了最后更改?

  8. 8

    我已经在python3中使用协议3对文件进行了腌制,现在我需要使用python2对其进行腌制,该怎么办?

  9. 9

    数据集对新行进行了更改

  10. 10

    sha256sum为什么对文件末尾和输入末尾信号进行了不同处理?

  11. 11

    即使对节点js进行了更改,Node js也会在控制台中显示旧文件

  12. 12

    cs50的可读性。在“如果”行无故进行了有价值的更改

  13. 13

    Bash评估在版本4.4中进行了更改?

  14. 14

    notifydataset在片段内部使用listview进行了更改

  15. 15

    在Rails 3和Rails 4之间进行了哪些路由更改?

  16. 16

    derbyJS-实时了解谁进行了更改

  17. 17

    对cakephp视图文件进行了更改,但更改未在浏览器中显示

  18. 18

    检查Git是否以编程方式进行了更改

  19. 19

    jQuery-如果对textarea进行了更改,则无法提交表单

  20. 20

    git:显示哪些文件在内核3.18.6和3.18.7之间进行了更改

  21. 21

    如何检查rsync是否对bash进行了任何更改?

  22. 22

    DBD / DBI:如果对程序进行了分叉,则会崩溃

  23. 23

    如果我使用从任何xcode 6版本生成的ipa进行了测试,则未收到AWS SNS通知,该如何解决?

  24. 24

    PHP登录表单(无sql)-针对文本文件记录进行了验证-未进行验证

  25. 25

    在新版本的Angle中进行了动画处理

  26. 26

    cp命令在不同的Ubuntu版本上进行了额外的复制以克隆文件夹

  27. 27

    数据集对新行进行了更改

  28. 28

    仅保存如果进行了更改

  29. 29

    使用批处理文件对 desktop.ini 进行了更改,但文件夹图标不会更改

热门标签

归档