Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用django存储将文件动态上载到不同的s3存储桶中_Python_Django_Amazon Web Services_Amazon S3_Boto3 - Fatal编程技术网

Python 使用django存储将文件动态上载到不同的s3存储桶中

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

我正在使用django存储上传到s3存储桶中。 但我希望能够上传到不同的s3存储桶中,而不是我在settings.py中默认设置的存储桶中 我的应用程序每个bucket都有一个不同的网页,可以访问其中的内容。 理想情况下,我希望从url中提取bucket名称,并在代码中动态地将bucket名称设置为文件上载的位置

    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)
找到了我自己的答案