簡體   English   中英

使用python將文件上傳到s3時更改元數據

[英]Changing metadata when uploading file to s3 with python

我有一個 html 文件,我正在使用 python 上傳到 s3。 出於某種原因,s3 添加了一個系統定義的元數據,說明文件 Content-Type 是“binary/octet-stream”: 在此處輸入圖片說明

我需要將此值更改為“text/html”。 我可以手動完成,但我希望在上傳文件時自動完成。 我嘗試了以下代碼:

metadata = {
    "Content-Type": "text/html"
}
s3_file_key = str(Path("index.html"))
local_file_path = Path("~", "index.html").expanduser()
s3 = session.resource("s3")
bucket = s3.Bucket(bucket_name)
with open(local_file_path, READ_BINARY) as local_file:
    bucket.put_object(Key=s3_file_key, Body=local_file, Metadata=metadata)

但結果是該文件有 2 個元數據鍵:

在此處輸入圖片說明

我找不到任何關於如何更改系統定義的元數據的文檔。

謝謝您的幫助

使用MetadataDirective參數:

bucket.put_object(Key=s3_file_key, Body=local_file, Metadata=metadata, MetadataDirective='REPLACE')

MetadataDirective -- 指定元數據是從源對象復制還是替換為請求中提供的元數據 ('COPY' | 'REPLACE')。

S3 - Boto3 文檔

暫無
暫無

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

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