2013-08-27 41 views
0

在完成Web瀏覽後,我完全停留在正在構建的應用程序上,使用C#(目標.NET 4.5)將目錄推送到Amazon S3。我在使用TransferManager類的UploadDirectory(TransferUtilityUploadDirectoryRequest)方法推送目錄文件的代碼行上獲取NullReferenceExceptions。問題是我找不到任何空的!調試器也不顯示任何空值,所以我顯然在這裏丟失了一些東西。試圖將目錄上傳到S3(.NET API - C#)時出現NullReferenceException

我讀到,如果你正在上傳到其中有句點的桶,你需要將協議改爲HTTP,否則可能會拋出NullReferenceException,但是我也這樣做了,並且繼續收到錯誤即使我創建了另一個沒有周期的測試存儲桶也是如此。

我的代碼部分最多爲&,包括導致異常的行如下。所謂S3Info類只是一個輔助類,我創建的只是存儲一些配置信息,如訪問/密鑰和其它信息:

public static void uploadDirectories(S3Info info, List<DirectoryInfo> dirs, Logger logger = null) 
    { 
     AmazonS3Config alterConfig = new AmazonS3Config(); 
     alterConfig.CommunicationProtocol = Protocol.HTTP; 
     AmazonS3Client s3Client = new AmazonS3Client(info.getCredentials(), alterConfig); 
     TransferUtility directoryTransferUtil = new TransferUtility(s3Client); 
     TransferUtilityUploadDirectoryRequest uploadDirRequest; 
     PutObjectRequest completeFileUploadRequest; 
     uint uploadSuccessCount = 0; 

     if (dirs == null || dirs.Count == 0) 
     { 
      logger.log("Nothing to upload."); 
      return; 
     } 
     //upload directory with PDFs 
     foreach (DirectoryInfo dir in dirs) 
     { 
      try 
      { 
       //configure upload request 
       uploadDirRequest = new TransferUtilityUploadDirectoryRequest(); 
       uploadDirRequest.BucketName = info.selectedBucket.BucketName; 
       uploadDirRequest.Directory = dir.FullName; 
       uploadDirRequest.KeyPrefix = dir.Name + @"\"; 
       uploadDirRequest.SearchOption = SearchOption.TopDirectoryOnly; 
       uploadDirRequest.SearchPattern = "*.pdf"; 
       uploadDirRequest.Timeout = 600000; //10 minutes 

       //upload directory! 
       directoryTransferUtil.UploadDirectory(uploadDirRequest); //exception thrown here 

我有點停留在這一點上,所以我開任何社區可以提供的建議。謝謝。

編輯:堆棧Trace-

Object reference not set to an instance of an object. :  
at Amazon.S3.Transfer.Internal.UploadDirectoryCommand.Execute() 

at Amazon.S3.Transfer.TransferUtility.UploadDirectory(TransferUtilityUploadDirectoryRequest request) 

at S3Delivery.AmazonActions.uploadDirectories(S3Info info, List`1 dirs, Logger logger) in c:\Users\jblacker\Documents\Visual Studio 2012\Projects\S3Delivery\S3Delivery\AmazonActions.cs:line 173 

線173是上面提到的線。

回答

1

修補版本的SDK(版本1.5.30.1)今天早些時候發佈,修復了此問題。

+0

謝謝。我試圖回答我自己的問題,但直到現在它才讓我。讚賞。 – JNYRanger

1

我在AWS論壇上發佈了相同的問題。很明顯,該API在該SDK的版本1.5.30中被打破:UploadDirectory()

亞馬遜剛剛發佈了補丁版本1.5.30.1

相關問題