


{
"Statement": [
{
"Sid":"PublicReadForGetBucketObjects",
"Effect":"Allow",
"Principal": {
"AWS": "*"
},
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::BUCKET-NAME/*"
]
},
{
"Action": "s3:*",
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::BUCKET-NAME",
"arn:aws:s3:::BUCKET-NAME/*"
],
"Principal": {
"AWS": [
"USER-ARN"
]
}
}
]
}
En el JSON incluímos dos declaraciones dentro de un arreglo. La primera es la que hace nuestro que bucket, platzis3, esté disponible para lectura por cualquier persona en internet.
La segunda declaración le da acceso de lectura, escritura y edición al usuario de AWS que coincida con el ARN que hayamos puesto ahí. Por lo que queda así:
- En la línea 10, 17 y 18 se agrega el bucket name
- En la línea 22 se agrega el User ARN

$ pip install django-storages boto
10.- Ahora debemos agregar storages a nuestras installed apps:

- El valor de STATIC_URL es un string con la url del bucket, en el caso del ejemplo es: platzis3.s3-website-us-west-1.amazonaws.com
- También cambiamos el almacenaje de estáticos por el de Amazon S3.
- El valor de AWS_STORAGE_BUCKET_NAME es un string con el nombre del bucket, en este ejemplo es platzis3.
- Los valores de AWS_ACCESS_KEY_ID y AWS_SECRET_ACCESS_KEY también son strings con las credenciales del usuario que habíamos creado. Para el ejemplo usé variables del sistema para no exponer las claves a la hora de publicarlo en Github.
$ python manage.py collectstatic
El resultado final, si analizamos el HTML de alguna de nuestras vistas, se verá así:


0 Comentarios
para escribir tu comentario