скачать файлы из S3 Bucket с помощью C # - PullRequest
0 голосов
/ 03 января 2019

Я новичок в концепции AWS S3 Bucket. Я полагаю, чтобы загрузить файлы из папки "СЕГОДНЯ ФАЙЛ1" в ведро s3 и использовать его. Я знаю, как это сделать в командной строке, используя командную строку. Я не знаю, как реализовать в C #.

Пусть

Вот что я делаю из командной строки

C:\> aws s3 cp "s3://mys3bucket-output/TODAY FILE1" . --recursive

это то, что я делаю в программе C # и получаю ошибку

string accessKey = "abc123";
string secretKey = "secret123";
string bucketName = "mys3bucket-output"
TransferUtility fileTransferUtility =   new TransferUtility(new AmazonS3Client(accessKey, secretKey, Amazon.RegionEndpoint.USEast2));


BasicAWSCredentials basicCredentials = new BasicAWSCredentials(accessKey,secretKey);
AmazonS3Client s3Client = new AmazonS3Client(new BasicAWSCredentials(accessKey, secretKey), Amazon.RegionEndpoint.USEast2);
ListObjectsRequest request = new ListObjectsRequest();

ListObjectsResponse response = s3Client.ListObjects(request.BucketName= bucketName, request.Prefix="TODAY FILE1/");

foreach (S3Object obj in response.S3Objects)
{
    try
    {
        Console.WriteLine("{0}", obj.Key);
        fileTransferUtility.Download(@"C:\Temp", bucketName, obj.Key);

    }
    catch (Exception Excep)
    {
        Console.WriteLine(Excep.Message, Excep.InnerException);
    }
}

Я получаю исключение Amazon.Runtime.AmazonServiceException: 'Доступ к пути' C: \ Temp 'запрещен

Я не знаю, что делать Спасибо MR

1 Ответ

0 голосов
/ 04 января 2019

вам нужно создать файлы перед записью.Изменения приведены ниже:

foreach (S3Object obj in response.S3Objects)
{
    try
    {
        string filename = directoryPath + "\\" + obj.Key;
        FileStream fs = File.Create(filename);
        fs.Close();
        Console.WriteLine("{0}", obj.Key);
        fileTransferUtility.Download(filename, bucketName, obj.Key);
    }
     catch (Exception Excep)
     {
         Console.WriteLine(Excep.Message, Excep.InnerException);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...