2017-02-21 242 views
0

我使用ASP.NET AWS SDK從我的Web應用程序上傳文件到S3存儲桶。AWS S3 - 從URL訪問私人文件

public static void UploadFile(string filePath) 
{ 
     using (_client = Amazon.AWSClientFactory.CreateAmazonS3Client(_awsAccessKey, _awsSecretKey, Amazon.RegionEndpoint.USEast1)) 
     { 
      var request = new PutObjectRequest() 
      { 
       Key = String.Format("{0}{1}", Guid.NewGuid(), Path.GetExtension(filePath)), 
       BucketName = _bucketName, 
       CannedACL = S3CannedACL.Private,    
       FilePath = filePath 
      }; 

      _client.PutObject(request); 
     } 
} 

由於它是私人文件(CannedACL是私人文件),我無法從URL訪問該文件。 (https://s3.amazonaws.com/mybucketname/image.png

但我想從URL訪問文件只有當我登錄到我開發的asp.net web應用程序。

有沒有辦法做到這一點?

回答

0

要訪問「私人」文件,您可能需要使用API調用包括認證信息,或者您可以使用預簽名URL

A Pre-signed URL是一個受時間限制的URL,它包含一個加密的授權字符串,允許訪問私人對象。

預簽名的URL可以通過幾行代碼生成,並需要具有訪問私有文件權限的IAM用戶的訪問憑證。

查看文檔:Generate a Pre-signed Object URL using AWS SDK for .NET