本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
範例:簽章第 4 版中的 AWS 簽章計算
對於已驗證的請求,除非您使用 AWS SDKs,否則您必須撰寫程式碼來計算在請求中提供驗證資訊的簽章。Signature 第 4 版中的 AWS 簽章計算 (請參閱驗證請求AWS (簽章第 4 版)) 可能是一項複雜的任務,我們建議您盡可能使用 AWS SDKs。
本節提供以 Java 和 C# 撰寫的簽章計算範例。程式碼範例會傳送下列請求,並使用 HTTP 授權標頭來提供身分驗證資訊:
-
PUT 物件 – 個別範例說明一次上傳完整承載並以區塊形式上傳承載。如需使用授權標頭進行身分驗證的詳細資訊,請參閱 驗證請求:使用授權標頭AWS (簽章第 4 版)。
-
GET 物件 – 此範例會產生預先簽章的 URL 以取得物件。查詢參數提供簽章和其他身分驗證資訊。使用者可以在瀏覽器中貼上預先簽章的 URL 來擷取物件,或者您可以使用 URL 來建立可點選的連結。如需使用查詢參數進行身分驗證的詳細資訊,請參閱驗證請求:使用查詢參數AWS (簽章第 4 版)。
本節其餘部分說明 Java 和 C# 中的範例。這些主題包含下載範例和執行範例的說明。
使用 Java AWS 的簽章計算範例 (簽章第 4 版)
顯示簽章計算的 Java 範例可在 https://https://docs.aws.amazon.com/AmazonS3/latest/API/samples/AWSS3SigV4JavaSamples.zip 下載。請注意,這些範例使用適用於 Java 的 AWS SDK v1,我們建議您將AWS 適用於 Java 的 SDK v2 用於新應用程式。在 中RunAllSamples.java, main()函數會執行範例請求來建立物件、擷取物件,以及建立物件的預先簽章 URL。範例會從程式碼中提供的文字字串建立物件:
PutS3ObjectSample.putS3Object(bucketName, regionName, awsAccessKey, awsSecretKey); GetS3ObjectSample.getS3Object(bucketName, regionName, awsAccessKey, awsSecretKey); PresignedUrlSample.getPresignedUrlToS3Object(bucketName, regionName, awsAccessKey, awsSecretKey); PutS3ObjectChunkedSample.putS3ObjectChunked(bucketName, regionName, awsAccessKey, awsSecretKey);
在 Linux 型電腦上測試範例
下列指示適用於 Linux 作業系統。
-
在終端機中,導覽至包含 的目錄
AWSS3SigV4JavaSamples.zip。 -
解壓縮 .zip 檔案。
-
在文字編輯器中開啟檔案
./com/amazonaws/services/s3/samples/RunAllSamples.java。使用下列資訊更新程式碼:可以建立新物件的儲存貯體名稱。
注意
這些範例使用虛擬託管樣式請求來存取儲存貯體。為了避免潛在的錯誤,請確保您的儲存貯體名稱符合 Amazon Simple Storage Service 使用者指南中的儲存貯體限制和限制中所述的儲存貯體命名規則。
AWS 區域 儲存貯體所在的位置。
如果儲存貯體位於美國東部 (維吉尼亞北部) 區域,請使用 us-east-1 指定區域。如需其他 的清單 AWS 區域,請前往 中的 Amazon Simple Storage Service (S3)AWS 一般參考。
-
編譯原始程式碼,並將編譯的類別存放在
bin/目錄中。javac -d bin -source 6 -verbose com -
將目錄變更為
bin/,然後執行RunAllSamples。java com.amazonaws.services.s3.sample.RunAllSamples此程式碼會執行 中的所有方法
main()。對於每個請求,輸出將顯示正式請求、要簽署的字串和簽章。
使用 C# 的簽章計算範例AWS (簽章版本 4)
顯示簽章計算的 C# 範例可在 https://https://docs.aws.amazon.com/AmazonS3/latest/API/samples/AmazonS3SigV4_Samples_CSharp.zip 下載。請注意,這些範例使用適用於 .NET v1 的 AWS SDK,我們建議您針對新應用程式使用AWS 適用於 .NET v3 的 SDK。在 中Program.cs, main()函數會執行範例請求來建立物件、擷取物件,以及建立物件的預先簽章 URL。簽章計算的程式碼位於 \Signers 資料夾中。
PutS3ObjectSample.Run(awsRegion, bucketName, "MySampleFile.txt"); Console.WriteLine("\n\n************************************************"); PutS3ObjectChunkedSample.Run(awsRegion, bucketName, "MySampleFileChunked.txt"); Console.WriteLine("\n\n************************************************"); GetS3ObjectSample.Run(awsRegion, bucketName, "MySampleFile.txt"); Console.WriteLine("\n\n************************************************"); PresignedUrlSample.Run(awsRegion, bucketName, "MySampleFile.txt");
使用 Microsoft Visual Studio 2010 或更新版本測試範例
-
解壓縮 .zip 檔案。
-
啟動 Visual Studio,然後開啟 .sln 檔案。
-
使用有效的安全登入資料更新 App.config 檔案。
-
更新程式碼,如下所示:
-
在 中
Program.cs,提供儲存貯 AWS 區域 體名稱和儲存貯體所在的 。此範例會在此儲存貯體中建立 物件。
-
-
執行程式碼。
-
若要確認物件已建立,請複製程式建立的預先簽章 URL,然後將其貼入瀏覽器視窗。