django boto3: NoCredentialsError - No se pueden ubicar las credenciales
Estoy tratando de usarboto3
en mi proyecto django para subir archivos a Amazon S3. Las credenciales se definen ensettings.py
:
AWS_ACCESS_KEY = xxxxxxxx
AWS_SECRET_KEY = xxxxxxxx
S3_BUCKET = xxxxxxx
Enviews.py
:
import boto3
s3 = boto3.client('s3')
path = os.path.dirname(os.path.realpath(__file__))
s3.upload_file(path+'/myphoto.png', S3_BUCKET, 'myphoto.png')
El sistema se queja deUnable to locate credentials
. Tengo dos preguntas:
(a) Parece que se supone que debo crear un archivo de credencial~/.aws/credentials
. Pero en un proyecto django, ¿dónde tengo que ponerlo?
(b) El método s3upload_file
toma una ruta / nombre de archivo como primer argumento. ¿Es posible que proporcione una secuencia de archivo obtenida por un elemento de entrada de formulario<input type="file" name="fileToUpload">
?