Amazon S3是否提供了设置blob的Content-MD5标头的方法?

时间:2012-10-16 16:21:07

标签: amazon-s3 amazon-web-services

我正在尝试将blob上传到S3并使用.NET API指定“ Content-MD5 ”标头。我想这样做,以便a)S3验证散列,b)任何时候客户端下载文件,他们将读取blob上的“ Content-MD5 ”标题并在客户端验证侧。

这样的事情:

        PutObjectRequest request = new PutObjectRequest();
        request.WithFilePath(fileName)
            .WithBucketName(S3_BUCKET_NAME)
            .WithKey(fileKey)
            .WithTimeout(FIVE_MINUTES)
            .WithMD5Digest("ubewX5M7uzz64zskr7FThQ==");

这似乎把头放在请求中,并且S3正确验证了哈希。问题是如果我之后查看blob标题它们不满足' Content-MD5 '标题,那么我无法让下游客户端在下载后验证文件(要求b)从上面开始)

我已经尝试过在blob上设置标题的其他方法,但这些方法都不起作用:

   request.AddHeaders(Amazon.S3.Util.AmazonS3Util.CreateHeaderEntry("Content-MD5", "ubewX5M7uzz64zskr7FThQ=="));
   request.AddHeader("Content-MD5", "ubewX5M7uzz64zskr7FThQ==");
   request.WithMetaData("Content-MD5", "ubewX5M7uzz64zskr7FThQ==");

我甚至尝试使用CloudBerry来更新blob的标头,但是虽然Cloudberry将请求发送到S3(并没有抱怨),但blob仍然没有包含标题。

有什么想法吗? S3甚至可以实现这一点吗?有几种方法可以使用AzureBlob存储。

1 个答案:

答案 0 :(得分:2)

没有任何S3文件的MD5是不可能的? 注意:ETag和Content-MD5是相同的。 您可以使用ETAG验证下载流