Загрузить файл в Amazon S3 с URL-адреса [ошибка файла не существует] - PullRequest
0 голосов
/ 15 февраля 2012

В настоящее время я использую viddler для загрузки различных сервисов и видео.Я также хотел бы сделать сервис для резервного копирования контента на сервере Amazon 3.Для разработки этого сервиса я использовал AWS SDK для .NET.Когда я пытаюсь загрузить файл, передавая URL в качестве пути к файлу, он выдает следующую ошибку:
"the specified file does not exist"

Мой вопрос: поддерживает ли AWS SDK загрузку контента из другого домена в s3 программным способом?или любой другой метод?

Мой код:

PutObjectRequest titledRequest = new PutObjectRequest();
titledRequest.WithMetaData("title", "the title")
//.WithContentBody("this object has a title")
.WithBucketName(bucketName)
.WithFilePath("http://download.microsoft.com/download/9/2/2/9222D67F-7630-4F49-BD26-        476B51517FC1/FileFormatConverters.exe") //does url support? 
.WithTimeout(3600000)
.WithReadWriteTimeout(3600000)
.WithKey("test.ext");

using (S3Response responseWithMetadata = client.PutObject(titledRequest))
{
}

1 Ответ

0 голосов
/ 23 июля 2013

Для загрузки на S3 требуется весь поток данных с набором метаданных длины содержимого. Вам необходимо создать оперативный буфер, который получает данные из исходного URL-адреса и асинхронно направляет их в запрос S3 PutObject.

Один из способов сделать это - использовать два буфера для упорядочения потока данных из источника в заданные размеры фрагментов, которые можно использовать как часть многоэтапной загрузки.

В SDK, я сомневаюсь, есть поддержка этого, поэтому вам придется реализовать это, используя вызовы REST к сервису AWS.

...