Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 如何在大于5GB的S3对象上更新元数据?_Amazon S3_Boto3 - Fatal编程技术网

Amazon s3 如何在大于5GB的S3对象上更新元数据?

Amazon s3 如何在大于5GB的S3对象上更新元数据?,amazon-s3,boto3,Amazon S3,Boto3,我正在使用boto3 API更新对象上的S3元数据 我在利用 我的代码如下所示: s3_object = s3.Object(bucket,key) new_metadata = {'foo':'bar'} s3_object.metadata.update(new_metadata) s3_object.copy_from(CopySource={'Bucket':bucket,'Key':key}, Metadata=s3_object.metadata, M

我正在使用boto3 API更新对象上的S3元数据

我在利用

我的代码如下所示:

    s3_object = s3.Object(bucket,key)
    new_metadata = {'foo':'bar'}
    s3_object.metadata.update(new_metadata)
    s3_object.copy_from(CopySource={'Bucket':bucket,'Key':key}, Metadata=s3_object.metadata, MetadataDirective='REPLACE')
当对象大于5GB时,此代码失败。我得到这个错误:

botocore.exceptions.ClientError: An error occurred (InvalidRequest) when calling the CopyObject operation: The specified copy source is larger than the maximum allowable size for a copy source: 5368709120

如何更新大于5GB的对象上的元数据?

由于对象的大小,请尝试调用多部分上载并使用copy_from参数。有关更多信息,请参见此处的boto3文档:


显然,您不能只更新元数据-您需要将对象重新复制到S3。您可以将其从s3复制回s3,但不能只进行更新,这对于100-500GB范围内的对象来说很烦人。

但我不会上载对象。。。?