Ответ может зависеть от того, как вы пытаетесь загрузить файл/файлы. Поскольку это не было указано, я отвечу на ваш вопрос, используя CLI из среды * nix.
Ответ на ваш вопрос (используя curl)
Используя curl, вы можете загрузить сжатый файл и извлечь его с помощью функции извлечения-архива.
$ tar cf archive.tar directory_to_be_archived
$ curl -i -XPUT -H'x-auth-token: AUTH_TOKEN' https://storage101.iad3.clouddrive.com/v1/MossoCloudFS_aaa-aaa-aaa-aaa?extract-archive=tar -T ./archive.tar
Вы можете найти документацию по этой функции здесь: http://docs.rackspace.com/files/api/v1/cf-devguide/content/Extract_Archive-d1e2338.html
Рекомендуемое решение (с использованием Swiftly)
Выгрузка и извлечение такого количества объектов с использованием описанного выше метода может занять много времени. Кроме того, если в это время произойдет сбой в сети, вам придется начать все сначала.
Вместо этого я бы рекомендовал использовать такой инструмент, как Swiftly, который позволит вам одновременно загружать файлы. Таким образом, если во время загрузки возникнет проблема, вам не придется повторно загружать объекты, которые уже были успешно загружены.
Пример того, как это сделать, выглядит следующим образом:
$ swiftly --auth-url="https://identity.api.rackspacecloud.com/v2.0" \
--auth-user="{username}" --auth-key="{api_key}" --region="DFW" \
--concurrency=10 put container_name -i images/
Если во время загрузки происходит сбой в сети или вам нужно остановить/перезапустить загрузку файлов, вы можете добавить параметр «--other» после «put» в приведенной выше команде. Это сообщит Swiftly сначала HEAD объект и загрузку только в том случае, если время или размер локального файла не соответствует соответствующему объекту, пропуская объекты, которые уже были загружены.
Swiftly можно найти на github здесь: https://github.com/gholt/swiftly
Есть и другие клиенты, которые, возможно, делают то же самое, но я знаю, что Swiftly работает, поэтому рекомендую его.
person
hurricanerix
schedule
29.07.2015