2013-02-12 47 views
0

我是亞馬遜S3的新手,經過搜索亞馬遜&我已經取得了一些進展。從Windows應用程序上傳文件到S3 Amazon?

我正在創建一個windows應用程序來上傳文件。我試着用下面的代碼,它不上傳文件,我沒有得到任何錯誤。

如果我評論的.withKey屬性比文件上傳的桶的根,而是我想上傳到文件夾中的特定文件夾。

Try 
     Dim fileTransferUtility As New TransferUtility(client) 
     Dim request As TransferUtilityUploadRequest = New TransferUtilityUploadRequest 
     Dim S3_KEY As String = "MitsTest/CVs" 'I want to upload file to CVs folder 


     With request 
      .BucketName = "mybucketname" 
      .WithKey(S3_KEY) 
      .WithFilePath("C:\Users\mitesh\Desktop\s3.txt") 
      .WithTimeout(FIVE_MINUTES) 
     End With 
     fileTransferUtility.Upload(request) 

    Catch ex As Exception 

    Finally 

    End Try 

我也嘗試使用以下和相同的結果,我沒有得到任何錯誤,但文件沒有上載。

Dim Filepath = "C:\Users\mitesh\Desktop\s3.txt" 
Dim FolderName = "MitsTest/CVs/" 
Dim PutRequest As New PutObjectRequest() 

    Try 
     With PutRequest 
      .WithBucketName("mybucketname") 
      '.WithKey(FolderName + "/" + FilePath) 
      .WithKey(FolderName) 
      .WithFilePath(FilePath) 
      .StorageClass = S3StorageClass.Standard 
      .ServerSideEncryptionMethod = ServerSideEncryptionMethod.None 
      '.WithContentBody(String.Empty) 
      Dim response As S3Response = client.PutObject(PutRequest) 
      response.Dispose() 

     End With 

    Catch ex As Exception 
     Stop 
    End Try 

如果我取消這條線」 .WithKey(文件夾名+‘/’+文件路徑)和刪除文件夾名稱斜槓(/),然後我得到「我們出的要求籤名不匹配簽名你提供了。檢查你的密鑰和簽名方法。「錯誤。

我在這裏失蹤或做錯了什麼?任何幫助將非常感激。

問候

Mitesh

回答

0

你簽字的錯誤是,在反斜槓字符的原因「C:\用戶。」是的鍵名無效。您應該用正斜槓替換它們,或者爲鍵名使用不同的值。

在你的第一個例子中,你實際上試圖上傳到「MitsTest/CVs」鍵。你需要附加這樣的文件名:

.WithKey(S3_KEY+ "/" + "s3.txt") 
+0

我已經整理出來了。這是其他人的解決方案。解決方案是將文件名添加到文件夾名稱。 UploadFileToS3( 「C:\用戶\ mitesh \桌面\ s3.txt」, 「MitsTest/CVS/s3.txt」) 點心文件路徑= 「C:\用戶\ mitesh \桌面\ s3.txt」 Dim FolderName =「MitsTest/CVs/s3.txt」 – MChauhan 2013-02-13 14:37:58