2011-12-21 19 views
5

我正在使用AWS.Net上傳用戶內容(圖像)並將它們顯示在我的網站上。這是我的代碼看起來像目前的上傳:在.NET中使用S3存儲

using (client = Amazon.AWSClientFactory.CreateAmazonS3Client()) 
    { 
     var putObjectRequest = new PutObjectRequest 
     { 

      BucketName = bucketName, 
      InputStream = fileStream, 
      Key = fileName, 
      CannedACL = S3CannedACL.PublicRead, 
      //MD5Digest = md5Base64, 
      //GenerateMD5Digest = true, 
      Timeout = 3600000 //1 Hour 
     }; 

     S3Response response = client.PutObject(putObjectRequest); 
     response.Dispose(); 
} 

請告訴我存放的路徑,這些文件的最好方法?有沒有辦法從響應中獲取我的文件的鏈接?

目前我只是有一個網址,我webconfig像https://s3.amazonaws.com/<MyBucketName>/,然後當我需要證明我把這個字符串的圖像,並使用從我存儲在表示上載的文件數據庫對象的關鍵。 有沒有更好的方法來做到這一點?

所有與它一起的例子並沒有真正解決這種用法。儘管遵循亞馬遜的指示,但文檔不在線,並且在安裝SDK後我不知道如何獲得它。

+0

只需+1代碼示例!不管存儲桶默認情況如何,S3/SDK在默認情況下默認爲私有文件。我發現的所有其他示例顯式設置使用傳輸實用程序的權限。輸入流正是我所追求的! – winwaed 2013-09-25 22:50:42

回答

2

您在web.config中存儲路徑(包括存儲桶名稱)的方法與我所做的相同,這非常棒。然後我將相對路徑存儲在各種數據庫表中。

這種方法的好處是,它可以更容易遷移到不同的存儲機制或CDN的如CloudFront的。我認爲沒有比這種方法更好的方法,因爲S3文件駐留在不同的域上,或者如果您執行CNAME映射,則是子域名,因此您的.NET運行時不會在相同的域或子域下運行。

0

也有其直指其中S3Object是URI的響應的「位置」屬性。

相關問題