django boto3: NoCredentialsError - Anmeldeinformationen können nicht gefunden werden

Ich versuche, @ zu verwendboto3 in meinem Django-Projekt, um Dateien auf Amazon S3 hochzuladen. Anmeldeinformationen sind in @ definiersettings.py:

AWS_ACCESS_KEY = xxxxxxxx
AWS_SECRET_KEY = xxxxxxxx
S3_BUCKET = xxxxxxx

Imviews.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')

Das System beschwert sich überUnable to locate credentials. Ich habe zwei Fragen

(a) Es scheint, dass ich eine Anmeldedatei erstellen soll~/.aws/credentials. Aber wo muss ich es in einem Django-Projekt hinstellen?

(b) Die s3 Methodeupload_file verwendet als erstes Argument einen Dateipfad / -namen. Kann ich einen Dateistream bereitstellen, der von einem Formulareingabeelement @ abgerufen wurd<input type="file" name="fileToUpload">?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage