2009-12-10 88 views
0

我正在幫助一個當地學校的一些涉及.Net和S3的項目。 其中我對這兩個都是新手。我們希望通過Flash上​​傳表單上傳文件,然後通過.Net將文件存儲在Amazon S3上。我已經下載並通過了這些例子,但是讓我自己陷入了這一點。上傳一個HttpPostedFile到S3

public string postFile(HttpPostedFile file) 
    { 
     var recFile = file; 
     try 
     { 
     var client = AWSClientFactory.CreateAmazonS3Client(accessKeyID, secretAccessKeyID); 
      var request = new PutObjectRequest(); 
      request.WithMetaData("title", "the title") 
        .WithContentBody(???) 
        .WithBucketName(bucketName) 
        .WithKey(keyName); 

      using (S3Response response = client.PutObject(request)) 
      { 
       return keyName; 
      } 
     } 
     ...... 

我假設這是要走的路,但不知道如何實際上得到它的工作。 如果是這樣的話,我會堅持下去,但是要感謝有這方面經驗的人。謝謝。

+0

上傳文件有什麼好運嗎?我沒有得到我的文件上傳:( – balexandre 2010-12-02 04:09:45

回答

2

這是行不通的?

public string postFile(HttpPostedFile file) 
{ 
    var recFile = file; 
    try 
    { 
     var client = AWSClientFactory.CreateAmazonS3Client(accessKeyID, secretAccessKeyID); 
     var request = new PutObjectRequest(); 

     request.WithMetaData("title", "the title") 
     request.WithInputStream(recFile.InputStream); //** Using InputStream 
     request.WithBucketName(bucketName); 
     request.WithKey(keyName); 

     using (S3Response response = client.PutObject(request)) 
     { 
      return keyName; 
     } 
    ...... 
+0

這將工作,這種方法的問題是該文件將由ASP.NET緩存到磁盤,然後發送到S3的另一個請求,這將有效傳輸加倍不幸的是,編寫一個模塊來處理原始數據流需要花費相當多的工作量,所以比特可以即時傳輸。 – 2010-01-15 03:10:17