2014-11-26 2 views
5

У меня есть приложение-узел и с помощью aws-sdk я могу успешно вызвать метод getSignedUrl() и получить URL-адрес для определенного файла.Грант Предварительно подписанный адрес URL-адреса для всего каталога

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

Возможно ли это?

ответ

4

A Предписанный URL разрешает доступ к закрытым объектам, хранящимся на Amazon S3. Это средство обеспечения безопасности объектов, но предоставление временного доступа к определенному объекту.

Он создается посредством вычисления хеша на основе пути объекта, времени истечения срока действия и общего секретного ключа доступа, принадлежащего учетной записи, имеющей разрешение на доступ к объекту Amazon S3. Таким образом, каждый предварительно подписанный URL-адрес составляет , уникальный для каждого объекта. и не могут действовать в качестве подстановочного знака для всего каталога.

Некоторые альтернативы:

  • Грант публичный доступ ко всем объектам в подкаталоге с помощью политики Bucket. Это означает, что объекты больше не являются частными, но это самый простой способ «опубликовать» ведро или каталог или объекты.
  • Доступ через API, а не план URL-адресов, который включает в себя передачу учетных данных, которые могут быть связаны с пользователем, созданным в Identity and Access Management (IAM). Это потребует использования такого инструмента, как AWS Command Line Interface (CLI) для извлечения объектов, а не веб-браузера, и имеет то преимущество, что он может копировать несколько объектов одновременно (как обычная команда cp).

Смотрите также: AWS CLI copy command

1

По состоянию на март 2015 года, теперь вы можете использовать signed cookies, чтобы предоставить доступ ко всей директории.

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

+0

Спасибо за обновление @Houseman, это может пригодиться в будущем – jolyonruss

1

Теперь можно использовать Custom Policy и создать токен, который предоставит доступ к * вместо одного объекта S3. Но, очевидно, вам нужно постоянно менять имена файлов в отдельных URL-адресах, сохраняя токен для всех.

Предполагается, что вы используете CloudFront перед S3 для распространения.

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