2013-10-04 3 views
3

Я хочу загрузить файл с моей памятиStream на сервер Amazon S3.Как загрузить файл памяти в amazon S3?

Вот код:

public static bool memUploadFile(AmazonS3 client, MemoryStream memFile, string toPath) 
{ 

    try 
    { 
     Amazon.S3.Transfer.TransferUtility tranUtility = new Amazon.S3.Transfer.TransferUtility(client); 
     tranUtility.Upload(filePath, toPath.Replace("\\", "/")); 

     return true; 
    } 
    catch (Exception ex) 
    { 
     return false; 
    } 

} 

Тогда ошибка говорит,

«лучший метод перегрузки матч для 'Amazon.S3.Transfer.TransferUtility.Uplaod (строка, строка)' имеет некоторые недопустимые аргументы»

+0

Вы не указали, на что указывает файлPath. Кроме того, «файл из моего memystream» не имеет смысла. –

ответ

4

Посмотрите на Upload Method (stream, bucketName, key)

public static bool memUploadFile(AmazonS3 client, MemoryStream memFile, string toPath) 
{ 
    try 
    { 
     using(Amazon.S3.Transfer.TransferUtility tranUtility = 
         new Amazon.S3.Transfer.TransferUtility(client)) 
     { 
      tranUtility.Upload(memFile, toPath.Replace("\\", "/"), <The key under which the Amazon S3 object is stored.>); 

      return true; 
     } 
    } 
    catch (Exception ex) 
    { 
     return false; 
    } 
} 
0

Гамлета я правильно. Это пример TransferUtilityUploadRequest

[Test] 
    public void UploadMemoryFile() 
    { 
     var config = CloudConfigStorage.GetAdminConfig(); 

     string bucketName = config.BucketName; 
     string clientAccessKey = config.ClientAccessKey; 
     string clientSecretKey = config.ClientSecretKey; 

     string path = Path.GetFullPath(@"dummy.txt"); 
     File.WriteAllText(path, DateTime.Now.ToLongTimeString()); 

     using (var client = AWSClientFactory.CreateAmazonS3Client(clientAccessKey, clientSecretKey)) 
     using (var transferUtility = new TransferUtility(client)) 
     { 

      var request = new TransferUtilityUploadRequest 
      { 
       BucketName = bucketName, 
       Key = "memory.txt", 
       InputStream = new MemoryStream(File.ReadAllBytes(path)) 
      }; 

      transferUtility.Upload(request); 
     } 
    } 
Смежные вопросы