我是 Python 新手,我正在编写一个 AWS lambda,它将文件从一个存储桶复制到另一个存储桶。我正在使用 Boto3 库并在文档中遇到以下内容:
当 Amazon S3 收到复制请求或 Amazon S3 复制文件时,复制请求可能会返回错误。如果错误发生在复制操作开始之前,您会收到标准 Amazon S3 错误。如果在复制操作过程中发生错误,错误响应将嵌入到 200 OK 响应中。这意味着 200 OK 响应可以包含成功或错误。设计您的应用程序以解析响应的内容并适当地处理它。如果复制成功,您会收到包含有关复制对象信息的响应。
成功的响应如下所示(潜在的敏感数据替换为“...”):
Response : {'ResponseMetadata': {'RequestId': 'ID....', 'HostId': 'ID...', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amz-id-2': '...', 'x-amz-request-id': '...', 'date': 'Wed,
10 Feb 2021 21: 48: 48 GMT', 'content-type': 'application/xml', 'content-length': '234', 'server': 'AmazonS3'
}, 'RetryAttempts': 0
}, 'CopyObjectResult': {'ETag': '"..."', 'LastModified': datetime.datetime(2021,
2,
10,
21,
48,
48, tzinfo=tzlocal())
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道如何解析 200 响应以检查错误。文档说,如果复制成功,那么您将收到有关复制对象信息的响应。我猜这是 CopyObjectResult 部分?
我正在访问响应:
response = s3_client.copy_object(CopySource=copy_source_object, Bucket=destination_bucket_name, …Run Code Online (Sandbox Code Playgroud)