0

BLOBをS3にアップロードし、.NETAPIを使用して「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ストレージでこれを行うにはいくつかの方法があります。

4

1 に答える 1

2

S3ファイルのMD5なしでは不可能ですか?注:ETagとContent-MD5は同じです。ETAGを使用してダウンロードストリームを検証できます

于 2012-10-17T06:32:06.677 に答える