簡體   English   中英

測試使用 boto3 時是否創建或更新了 S3 對象

[英]Test if an S3 object was created or updated when using boto3

使用boto3時是否可以確定是否創建或更新了 S3 對象?

當使用boto3.client('s3').put_object()創建或更新 S3 對象時,底層的 PutObject API 操作不會區分創建和更新對象,因此ResponseMetadata.HTTPStatusCode始終為 200。

boto3.client('s3')沒有post_object()方法, boto3.resource( boto3.resource('s3').object()也沒有post方法。 事實上,無論如何似乎都沒有PostObject API 操作。

import boto3
import base
import base64

client = boto3.client('s3')
body = 'Hello World!'

response = client.put_object(
    Bucket='my-bucket',
    Key='my-key.json',
    Body=body.encode('utf-8'))

print('S3 object successfully created. Or was it updated????')

沒有“更新”對象這樣的事情。 在 S3 中,您總是完全替換它們,這意味着您必須上傳整個“更新”對象。

但是,如果您的存儲桶是版本化的,您始終可以自己跟蹤對象的“更新”狀態,方法是檢查它們的Date 元數據屬性。

還有Last-Modified屬性,您可以檢查並與Date屬性進行比較以檢查它們是否不同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM