【问题标题】:boto3 s3 copy_object with ContentEncoding argument带有 ContentEncoding 参数的 boto3 s3 copy_object
【发布时间】:2020-03-02 07:00:36
【问题描述】:

我正在尝试使用 boto3 命令复制 s3 对象,如下所示

import boto3 
client = boto3.client('s3')
client.copy_object(Bucket=bucket_name, ContentEncoding='gzip', CopySource=copy_source, Key=new_key)

复制对象成功,但ContentEncoding元数据没有添加到对象中。

当我使用控制台添加 Content-Encoding 元数据时,没有问题。

但是使用 python boto3 复制命令,它不能这样做。

这是一个关于 client.copy_object()

的文档链接

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#S3.Client.copy_object

而且应用版本是这样的。

python=2.7.16

boto3=1.0.28

botocore=1.13.50

提前谢谢你。

【问题讨论】:

  • 只是检查...原始对象是 gzip 格式的吗?是否设置了 ContentEncoding 元数据?
  • 原始对象是来自另一个 etl 数据的 gzip,但没有“Content-Encoding=gzip”标签。

标签: amazon-s3 copy boto3 content-encoding


【解决方案1】:

尝试将 MetadataDirective='REPLACE' 添加到您的 copy_object 调用中

client.copy_object(Bucket=bucket_name, ContentEncoding='gzip', CopySource=copy_source, Key=new_key, MetadataDirective='REPLACE')

【讨论】:

    猜你喜欢
    • 2015-12-06
    • 2018-08-28
    • 2016-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-16
    • 2015-02-06
    • 1970-01-01
    相关资源
    最近更新 更多