Amazon Simple Storage Service
开发人员指南 (API Version 2006-03-01)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

使用适用于 .NET 的 AWS 开发工具包生成预签名对象 URL

以下任务将引导您使用 .NET 类来生成预签名 URL。

下载对象

1

创建 AmazonS3 类的实例。有关提供凭证的信息,请参阅使用 适用于 .NET 的 AWS 开发工具包。生成预签名 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; } } }