gpt4 book ai didi

amazon-s3 - 如何在使用 boto3 create_presigned_post 时添加元数据?

转载 作者:行者123 更新时间:2023-12-02 02:45:00 29 4
gpt4 key购买 nike

想要将自定义元数据添加到我使用来自 boto3 的 create_presigned_post 上传的文件。我正在运行以下代码,但收到 403 响应。下面的代码是从here借来的.我做错了什么吗?

def create_presigned_post(bucket_name, object_name,
fields=None, conditions=None, expiration=3600):

# Generate a presigned S3 POST URL
s3_client = boto3.client('s3')
try:
response = s3_client.generate_presigned_post(bucket_name,
object_name,
Fields=fields,
Conditions=conditions,
ExpiresIn=expiration)
except ClientError as e:
print(e)
return None

# The response contains the presigned URL and required fields
return response

# Generate a presigned S3 POST URL
object_name = 'test-file.txt'
response = create_presigned_post('temp', object_name, fields={'x-amz-meta-test_key': 'test_val'})

# Demonstrate how another Python program can use the presigned URL to upload a file
with open('test-file.txt', 'rb') as f:
files = {'file': (object_name, f)}
http_response = requests.post(response['url'], data=response['fields'], files=files)
# If successful, returns HTTP status code 204
print(f'File upload HTTP status code: {http_response.status_code}')

最佳答案

As per document , 字段字典不会自动添加到条件列表中。您还必须为元素指定条件。

response = create_presigned_post(bucket_name, object_name, fields={'x-amz-meta-test_key': 'test-val'}, conditions=[{'x-amz-meta-test_key': 'test-val'}])

它应该可以工作:)

关于amazon-s3 - 如何在使用 boto3 create_presigned_post 时添加元数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62961099/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com