Я хочу сделать объекты, загруженные в корзину 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
которые могут быть частью вышеуказанной политики.
Надеюсь, это поможет :)