Назад | Перейти на главную страницу

Как сделать объекты, загруженные в корзину S3, доступными для чтения без явной установки их разрешений

Я хочу сделать объекты, загруженные в корзину S3, доступными для чтения без явной установки их разрешений.

Соответствующее обсуждение Digital Ocean S3, которое я нашел, Вот.

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

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

Как я мог обновить свой bucket/image.jpg разрешения на ЧТЕНИЕ массово, регулярно, скажем каждые 10 минут?

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

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

Есть ли способ использовать S3 API, который я пропустил, или вы могли бы предложить использовать другой подход из S3 Cloud Object Storage? Все предложения приветствуются.

Самое простое решение - создать Политика ведра это дает s3:GetObject ко всем изображениям в папке загрузки.

{
  "Version":"2012-10-17",
  "Statement":[
    {
      "Sid":"AddPerm",
      "Effect":"Allow",
      "Principal": "*",           ## This grants public access - update to your needs 
      "Action": [
         "s3:GetObject"
      ],
      "Resource": "arn:aws:s3:::your-bucket-name/some-folder/*"
    }
  ]
}

Таким образом, неявный s3:GetObject политика будет применяться к вашим изображениям в s3://your-bucket-name/some-folder/* и они должны быть доступны вашим потребителям.

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

Надеюсь, это поможет :)