Commit 56806b5
authored
fix: Remove uso de ACL nos uploads para S3 (#111)
## Problema
Ao tentar fazer upload de arquivos para S3, ocorria o erro:
```
An error occurred (AccessControlListNotSupported) when calling the PutObject operation:
The bucket does not allow ACLs
```
Isso acontece porque buckets S3 modernos frequentemente têm a
configuração 'Object Ownership' definida como 'Bucket owner enforced', o
que **desabilita ACLs completamente**.
## Solução
Esta PR remove todos os parâmetros ACL das operações de upload no módulo
`storage/digital_ocean_spaces.py`:
- `upload_content()` - Removido `ExtraArgs={"ACL": permission}`
- `upload_file()` - Removido `ExtraArgs={"ACL": permission}`
- `upload_file_multipart()` - Removido parâmetro `ACL=permission`
## Como controlar acesso público agora?
O acesso público deve ser controlado através de **políticas de bucket**
ao invés de ACLs em nível de objeto, seguindo as melhores práticas da
AWS:
```json
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "PublicRead",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::nome-do-bucket/*"
}]
}
```
## Testes
- ✅ Testes unitários atualizados em `tests/digital_ocean_spaces.py`
- ✅ Código compatível com AWS S3, Digital Ocean Spaces e outros serviços
S3-compatíveis
## Nota
Este não era um problema de permissão IAM faltante, mas sim uma
incompatibilidade entre o código (que tentava definir ACLs) e a
configuração do bucket (que desabilita ACLs).2 files changed
Lines changed: 4 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
101 | 101 | | |
102 | 102 | | |
103 | 103 | | |
104 | | - | |
| 104 | + | |
105 | 105 | | |
106 | 106 | | |
107 | 107 | | |
| |||
110 | 110 | | |
111 | 111 | | |
112 | 112 | | |
113 | | - | |
114 | 113 | | |
115 | 114 | | |
116 | 115 | | |
| |||
121 | 120 | | |
122 | 121 | | |
123 | 122 | | |
124 | | - | |
| 123 | + | |
125 | 124 | | |
126 | 125 | | |
127 | 126 | | |
| |||
134 | 133 | | |
135 | 134 | | |
136 | 135 | | |
137 | | - | |
| 136 | + | |
138 | 137 | | |
139 | 138 | | |
140 | 139 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
149 | 149 | | |
150 | 150 | | |
151 | 151 | | |
152 | | - | |
| 152 | + | |
153 | 153 | | |
0 commit comments