Я использую Django
с библиотекой django-storages
для загрузки файлов моей модели на S3 и мне нужно добавить политику, чтобы заблокировать прямую загрузку с URL-адресов корзины.
Я добился этого, установивполитика ниже (отметьте Referer
), но это привело к проблеме, когда я использую функцию автоматического переименования библиотеки.Моя текущая политика:
{
"Version": "2012-10-17",
"Id": "Policy1542209806458",
"Statement": [
{
"Sid": "Block access globally except by the indicated referers.",
"Effect": "Deny",
"Principal": "*",
"Action": [
"s3:GetObject"
],
"Resource": "arn:aws:s3:::my-bucket/subfolder/*",
"Condition": {
"StringNotLike": {
"aws:Referer": [
"http://ref.localhost:8000/*",
"http://localhost:8000/*"
]
}
}
}
]
}
Путем отладки я обнаружил, что когда библиотека пытается выполнить запрос HEAD
для получения информации о существующем файле (которая будет указывать на необходимость переименования), ответом является HTTPОшибка 403Я попытался включить Action
s ниже (из других источников и документацию ), чтобы иметь более разрешающий доступ, но та же проблема сохраняется.
"Action": [
"s3:GetObject",
"s3:GetObjectVersion",
"s3:GetObjectAcl",
"s3:PutObject",
"s3:PutObjectAcl",
"s3:DeleteObject",
"s3:DeleteObjectVersion"
]
У меня нет такой проблемыпри добавлении новых файлов с уникальными именами, только когда необходимо переименование.