Python 使用django存储将文件动态上载到不同的s3存储桶中
我正在使用django存储上传到s3存储桶中。 但我希望能够上传到不同的s3存储桶中,而不是我在settings.py中默认设置的存储桶中 我的应用程序每个bucket都有一个不同的网页,可以访问其中的内容。 理想情况下,我希望从url中提取bucket名称,并在代码中动态地将bucket名称设置为文件上载的位置Python 使用django存储将文件动态上载到不同的s3存储桶中,python,django,amazon-web-services,amazon-s3,boto3,Python,Django,Amazon Web Services,Amazon S3,Boto3,我正在使用django存储上传到s3存储桶中。 但我希望能够上传到不同的s3存储桶中,而不是我在settings.py中默认设置的存储桶中 我的应用程序每个bucket都有一个不同的网页,可以访问其中的内容。 理想情况下,我希望从url中提取bucket名称,并在代码中动态地将bucket名称设置为文件上载的位置 def post(self, request, *args, **kwargs): if request.method == "POST": bucke
def post(self, request, *args, **kwargs):
if request.method == "POST":
bucket = kwargs.get('bucket_name')
form_model = Document()
form_model.upload.storage = S3Boto3Storage(bucket=bucket)
form = DocumentForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return HttpResponseRedirect("/bucket/"+bucket)
这仅保存到默认位置
def post(self, request, *args, **kwargs):
if request.method == "POST":
bucket = kwargs.get('bucket_name')
form = DocumentForm(request.POST, request.FILES)
if form.is_valid():
form.instance.upload.storage = S3Boto3Storage(bucket=bucket)
form.save()
return HttpResponseRedirect("/bucket/"+bucket)
找到了我自己的答案