首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >S3指定etag值

S3指定etag值
EN

Stack Overflow用户
提问于 2017-05-01 18:22:08
回答 1查看 3.2K关注 0票数 2

我想使用对象的sha256和作为etag。我使用以下代码来尝试指定etag:

代码语言:javascript
运行
复制
aws s3 cp foo-lambda.zip s3://foo-bucket/lambda-code/foo-lambda/foo-lambda.zip --metadata ETag=FkyOB6C4wZQz5w9ClCMKxnK8A0iqCk4RWSO0Epbbc4I= --profile foo-profile

此操作在没有错误消息或警告的情况下成功。但是,AWS S3控制台中的etag与此值不匹配;相反,它是zip的MD5和。我已经尝试删除该对象,并再次以相同的结果上传它。

编辑:下面是命令行的更多信息

代码语言:javascript
运行
复制
aws s3api head-object --bucket foo-bucket --key lambda-code/foo-lambda/foo-lambda.zip --profile foo-profile

响应

代码语言:javascript
运行
复制
{
    "AcceptRanges": "bytes",
    "ContentType": "application/zip",
    "LastModified": "Mon, 01 May 2017 18:17:11 GMT",
    "ContentLength": 584,
    "ETag": "\"729439461018d55c885e56b858e54676\"",
    "Metadata": {
        "etag": "FkyOB6C4wZQz5w9ClCMKxnK8A0iqCk4RWSO0Epbbc4I="
    }
}

所以请注意,ETag值是错误的,但是Metadata.etag值是我想要的值。

EN

Stack Overflow用户

回答已采纳

发布于 2017-05-01 18:44:36

Amazon将etag用于系统中的各种任务。您必须继续使用元数据,就像您在问题中提议的那样。

ETag 实体标记是对象的散列。ETag只反映对对象内容的更改,而不是对其元数据的更改。ETag可能是对象数据的MD5摘要,也可能不是。它是否是取决于如何创建对象以及如何加密对象,如下所述:

  • 由PUT对象、POST对象或复制操作或通过AWS管理控制台创建并由SSE-S3或明文加密的对象具有ETags,它是其对象数据的MD5摘要
  • 由PUT对象、POST对象或复制操作或通过AWS管理控制台创建并由SSE或SSE加密的ETags具有而不是其对象数据的MD5摘要
  • 如果一个对象是通过多部分上传或部分复制操作创建的,则 ETag不是MD5摘要,无论加密方法如何。

http://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonResponseHeaders.html

票数 4
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43724240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档