Amazon Simple Storage Service
開発者ガイド (API バージョン 2006-03-01)

署名付き URL を使用した、S3 バケットへのオブジェクトのアップロード (AWS SDK for .NET)

次の C# の例では、AWS SDK for .NET で署名付き URL を使用して S3 バケットにオブジェクトをアップロードする方法を示します。署名付き URL の詳細については、「署名付き URL を使用したオブジェクトのアップロード」を参照してください。

この例では、特定のオブジェクト用の署名付き URL を生成し、これを使用してファイルをアップロードします。この例と特定バージョンの AWS SDK for .NET との互換性、および有効なサンプルを作成してテストする手順の詳細については、「Amazon S3 .NET コード例の実行」を参照してください。

// Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: MIT-0 (For details, see https://github.com/awsdocs/amazon-s3-developer-guide/blob/master/LICENSE-SAMPLECODE.) using Amazon.S3; using Amazon.S3.Model; using System; using System.IO; using System.Net; namespace Amazon.DocSamples.S3 { class UploadObjectUsingPresignedURLTest { private const string bucketName = "*** provide bucket name ***"; private const string objectKey = "*** provide the name for the uploaded object ***"; private const string filePath = "*** provide the full path name of the file to upload ***"; // Specify your bucket region (an example region is shown). private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2; private static IAmazonS3 s3Client; public static void Main() { s3Client = new AmazonS3Client(bucketRegion); var url = GeneratePreSignedURL(); UploadObject(url); } private static void UploadObject(string url) { HttpWebRequest httpRequest = WebRequest.Create(url) as HttpWebRequest; httpRequest.Method = "PUT"; using (Stream dataStream = httpRequest.GetRequestStream()) { var buffer = new byte[8000]; using (FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read)) { int bytesRead = 0; while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) > 0) { dataStream.Write(buffer, 0, bytesRead); } } } HttpWebResponse response = httpRequest.GetResponse() as HttpWebResponse; } private static string GeneratePreSignedURL() { var request = new GetPreSignedUrlRequest { BucketName = bucketName, Key = objectKey, Verb = HttpVerb.PUT, Expires = DateTime.Now.AddMinutes(5) }; string url = s3Client.GetPreSignedURL(request); return url; } } }

詳細

AWS SDK for .NET

このページの内容: