2016-10-14 3 views
1

У меня есть это в app.config:AWS загрузка - ведро не найдено

<appSettings> 
    <add key="AWSProfileName" value="myName"/> 
    <add key="AWSRegion" value="eu-west-1" /> 
    </appSettings> 

Тогда я пытаюсь запустить это:

using Amazon.S3; 
using Amazon.S3.Model; 

namespace createCSV 
{ 
    class S3 
    { 

    public void uploadObject() 
    { 
    //IAmazonS3 client; 
    string AwsAccessKey = "xxxxxxxxxxxxx"; 
    string AwsSecretKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; 
    IAmazonS3 client = new AmazonS3Client(AwsAccessKey,AwsSecretKey); 
    PutObjectRequest request = new PutObjectRequest() 
    { 
     BucketName = @"http://s3-eu-west-1.amazonaws.com/bucketName/", 
     Key = @"test/blah.txt", 
     FilePath = @"P:\data_analysis\foo\blah.txt" 
    }; 
    PutObjectResponse response2 = client.PutObject(request); //<<exception here 
    } 

    } 
} 

я получаю исключение на линии, отмеченные слова:

Выход >>

Не удается найти или открыть файл PDB. Исключение брошено: '' Amazon.S3.AmazonS3Exception в AWSSDK.dll

AmazonS3exception был необработанное:

Необработанное исключение типа 'Amazon.S3.AmazonS3Exception' произошло в AWSSDK.dll

Дополнительное информация: указанный ковш не существует

Я пробовал много различных конфигураций для линии BucketName = @"http://s3-eu-west-1.amazonaws.com/bucketName/" с еще тем же исключением - может кто-нибудь помочь?

+1

проверки URL правильно или нет. –

+0

@viveknuna, если я добавлю URL-адрес в браузер, он не дает 404, а выходит на страницу, в которой говорится о доступе, который кажется хорошим? – whytheq

+0

аннулируем ваш ресурс, а затем попробуйте. –

ответ

1

Я думаю, вы забыли вставить свойство BucketName в PutObjectRequest. см. Пример ниже, чтобы загрузить файл на AmazonS3.

 string secretKey = "your secret key"; 
     string accessKey = "your access key"; 
     AmazonS3Client client = new AmazonS3Client(secretKey, accessKey, RegionEndpoint.EUWest1);// choose your region endpoin for this example I am usgin eu-west-1 
     PutObjectRequest uploadObjectRe = new PutObjectRequest() 
     { 
      BucketName = "qabucketireland",//your bucket name not full URL 
      Key = "test/blah.txt", 
      FilePath = @"c:\documents\script.txt" 
     }; 
     client.PutObject(uploadObjectRe); 

Другой способ загрузить файл может быть с помощью класса TransferUtility смотрите пример ниже:

  string secretKey = "your secret key"; 
      string accessKey = "your access Key"; 
      AmazonS3Client client = new AmazonS3Client(secretKey, accessKey, RegionEndpoint.EUWest1); 
      TransferUtility transfer = new TransferUtility(client); 
      transfer.Upload(@"c:\documents\script - Copy.txt", "qabucketireland", @"test/blah2.txt"); 

Также Вы можете прочитать эту «How to upload a file to amazon S3 super easy using c#»

1

Параметр для PutObjectRequestBucketName должен быть именем ведра (например bucketName), а не полностью квалифицированного конечной точки (например, http://s3-eu-west-1.amazonaws.com/bucketName/). Дополнительную информацию о SDK можно найти по адресу here.

Смежные вопросы