メニュー
Amazon Simple Storage Service
開発者ガイド (API Version 2006-03-01)

AWS SDK for .NET を使用した署名付きオブジェクト URL の生成

以下のタスクは、.NET クラスを使用して、署名付き URL を生成する手順を示しています。

オブジェクトのダウンロード

1

AmazonS3 クラスのインスタンスを作成します。認証情報の指定の詳細については、「AWS SDK for .NET の使用」を参照してください。これらの認証情報は、署名付き URL を生成するときに、認証用の署名を作成するのに使用されます。

2

AmazonS3.GetPreSignedURL メソッドを実行して署名付き URL を生成します。

バケット名、オブジェクトキー、有効期限などの情報を提供するには、GetPreSignedUrlRequest クラスのインスタンスを作成します。

以下の C# コード例は、前述のタスクの例です。

Copy
static IAmazonS3 s3Client; s3Client = new AmazonS3Client(Amazon.RegionEndpoint.USEast1) GetPreSignedUrlRequest request1 = new GetPreSignedUrlRequest() { BucketName = bucketName, Key = objectKey, Expires = DateTime.Now.AddMinutes(5) }; string url = s3Client.GetPreSignedURL(request1);

次の C# サンプルコードは、特定のオブジェクトの署名付き URL を生成します。実際に動作するコードを作成、テストする方法については、「Amazon S3 .NET コード例の実行」を参照してください。

Copy
using System; using Amazon.S3; using Amazon.S3.Model; namespace s3.amazon.com.docsamples { class GeneratePresignedURL { static string bucketName ="*** Provide a bucket name ***"; static string objectKey = "*** Provide an object name ***"; static IAmazonS3 s3Client; public static void Main(string[] args) { using (s3Client = new AmazonS3Client(Amazon.RegionEndpoint.USEast1)) { string urlString = GeneratePreSignedURL(); } Console.WriteLine("Press any key to continue..."); Console.ReadKey(); } static string GeneratePreSignedURL() { string urlString = ""; GetPreSignedUrlRequest request1 = new GetPreSignedUrlRequest { BucketName = bucketName, Key = objectKey, Expires = DateTime.Now.AddMinutes(5) }; try { urlString = s3Client.GetPreSignedURL(request1); //string url = s3Client.GetPreSignedURL(request1); } catch (AmazonS3Exception amazonS3Exception) { if (amazonS3Exception.ErrorCode != null && (amazonS3Exception.ErrorCode.Equals("InvalidAccessKeyId") || amazonS3Exception.ErrorCode.Equals("InvalidSecurity"))) { Console.WriteLine("Check the provided AWS Credentials."); Console.WriteLine( "To sign up for service, go to http://aws.amazon.com/s3"); } else { Console.WriteLine( "Error occurred. Message:'{0}' when listing objects", amazonS3Exception.Message); } } catch (Exception e) { Console.WriteLine(e.Message); } return urlString; } } }