Как загрузить файл непосредственно на s3 django
Я создаю поле формы и загружаю файл с его помощью. Я хочу, чтобы эти файлы загружались непосредственно на s3 без сохранения локально. Вот код
class UploadFileForm(forms.Form):
file = forms.FileField()
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
print('file upload',request.FILES['file'])
s3 = boto3.client('s3')
теперь как я могу загрузить request.FILES['file']
через s3
Я не хочу использовать djangostorages, потому что я уже использую его для другого ведра и задачи
Я не знаю, что у вас за сообщение об ошибке, но следующие шаги могут сработать...
- import boto3
- initialize S3 object
- укажите регион и ведро
- получите загруженный файл из формы
- поместить объект в S3 с телом и ключом (имя файла)
import boto3
...
data = form.cleaned_data
if data['file'] != None:
s3 = boto3.resource('s3', region_name='your region name')
bucket = s3.Bucket('your bucket name')
bucket.put_object(Body=data['file'], Key=data['file'].name)
...
Если это не работает, проверьте настройки AWS S3, связанные с сообщениями об ошибках (учетные данные, роль IAM, регион по умолчанию, политики ведра и другие настройки).