Как сделать 10 000 файлов в общественности S3

У меня есть папка в блоке с 10 000 файлов. Кажется, нет никакого способа загрузить их и немедленно обнародовать их. Таким образом, я загрузил их всех, они являются частными, и я должен сделать их всех общественностью.

Я попробовал aws консоль, она просто дает ошибку (хорошо работает с папками с меньшим количеством файлов).

Я попытался использовать организацию S3 в Firefox, том же самом.

Есть ли некоторое программное обеспечение или некоторый скрипт, который я могу запустить для создания всех ими общественность?

82
задан Benjamin 21 March 2014 в 16:09
поделиться

2 ответа

Взгляните на BucketExplorer , он очень хорошо управляет массовыми операциями и является надежным клиентом S3.

2
ответ дан 24 November 2019 в 09:02
поделиться

Вы могли бы подумать, что они опубликуют информацию о поведении по умолчанию, не так ли? :) Я поделился вашим разочарованием при создании пользовательского API для взаимодействия с S3 из решения C #. Вот фрагмент, который выполняет загрузку объекта S3 и устанавливает для него общедоступный доступ для чтения по умолчанию:

public void Put(string bucketName, string id, byte[] bytes, string contentType, S3ACLType acl) {
     string uri = String.Format("https://{0}/{1}", BASE_SERVICE_URL, bucketName.ToLower());
     DreamMessage msg = DreamMessage.Ok(MimeType.BINARY, bytes);
     msg.Headers[DreamHeaders.CONTENT_TYPE] = contentType;
     msg.Headers[DreamHeaders.EXPECT] = "100-continue";
     msg.Headers[AWS_ACL_HEADER] = ToACLString(acl);
     try {
        Plug s3Client = Plug.New(uri).WithPreHandler(S3AuthenticationHeader);
        s3Client.At(id).Put(msg);
     } catch (Exception ex) {
        throw new ApplicationException(String.Format("S3 upload error: {0}", ex.Message));
     }
}

Функция ToACLString (acl) возвращает общедоступное чтение , BASE_SERVICE_URL - s3.amazonaws. com , а константа AWS_ACL_HEADER - x-amz-acl . Подключаемые модули и DreamMessage могут показаться вам странными, поскольку мы используем фреймворк Dream для оптимизации наших HTTP-коммуникаций. По сути, мы выполняем HTTP PUT с указанными заголовками и специальной подписью заголовка в соответствии со спецификациями aws (см. Эту страницу в aws docs для примеров того, как создать заголовок авторизации).

Чтобы изменить существующие списки ACL для 1000 объектов, вы можете написать сценарий, но, вероятно, проще использовать инструмент с графическим интерфейсом для немедленного решения проблемы. Лучшее, что я использовал до сих пор, принадлежит компании под названием морошка для S3; похоже, что у них есть бесплатная 15-дневная пробная версия по крайней мере для одного из своих продуктов. Я только что проверил, что это позволит вам выбрать сразу несколько объектов и сделать их ACL общедоступными через контекстное меню. Наслаждайтесь облаком!

0
ответ дан 24 November 2019 в 09:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: