Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.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
在django中上载和下载xlsx文件_Django_Amazon S3_Upload_Celery_Botocore - Fatal编程技术网

在django中上载和下载xlsx文件

在django中上载和下载xlsx文件,django,amazon-s3,upload,celery,botocore,Django,Amazon S3,Upload,Celery,Botocore,我正在尝试使用一个将文件上传(xlsx)到s3的视图。还有一个芹菜函数,可以下载这个文件,这样我就可以执行一些操作了 我的看法是: class ImportView(APIView): parser_classes = (FileUploadParser, ) def post(self, request, filename): imported = ImportSerializer(data=request.data) fs = FileSys

我正在尝试使用一个将文件上传(xlsx)到s3的视图。还有一个芹菜函数,可以下载这个文件,这样我就可以执行一些操作了

我的看法是:

class ImportView(APIView):
    parser_classes = (FileUploadParser, )

    def post(self, request, filename):
        imported = ImportSerializer(data=request.data)
        fs = FileSystemStorage(tempfile.gettempdir())
        file_name = fs.save(content=new_colabs.validated_data["file"], name="import.xlsx")
        full_path = os.path.join(fs.location, file_name)
        object_name = file_name
        s3 = boto3.client("s3")
        s3.upload_file(full_path, "my_bucket", file_name)
        # call celery here...
        return Response(status=status.HTTP_200_OK)
我的芹菜任务:

def example_download_funciont(self):
    s3 = boto3.client("s3")
    bucket = s3.Bucket("my_bucket")
    with open(file_name, 'wb') as data:
        file = bucket.download_fileobj(object_name, data)
    workbook = load_workbook(file)
    # [...]
运行这个代码我可以上传到s3。然而,当我试图通过aws控制台直接访问它时,我得到以下错误:

AccessDeniedAccess DeniedAEEF2C5140AF4B82zNYFYcwehn+ZDxm+FuEI8mqrcCCU6BQzDdjd6mzOseMDanA6cPmu2VnbX3KvR978xN9v0QwOa7g=try { Object.defineProperty(screen, "availTop", { value: 0 }); } catch (e) {} try { Object.defineProperty(screen, "availLeft", { value: 0 }); } catch (e) {} try { Object.defineProperty(screen, "availWidth", { value: 2560 }); } catch (e) {} try { Object.defineProperty(screen, "availHeight", { value: 1080 }); } catch (e) {} try { Object.defineProperty(screen, "colorDepth", { value: 24 }); } catch (e) {} try { Object.defineProperty(screen, "pixelDepth", { value: 24 }); } catch (e) {} try { Object.defineProperty(navigator, "hardwareConcurrency", { value: 8 }); } catch (e) {} try { Object.defineProperty(navigator, "appVersion", { value: "5.0 (X11)" }); } catch (e) {} try { Object.defineProperty(navigator, "doNotTrack", { value: "unspecified" }); } catch (e) {} try { window.screenY = 0 } catch (e) { } try { window.screenTop = 0 } catch (e) { } try { window.top.window.outerHeight = 1051 } catch (e) { } try { window.screenX = 395 } catch (e) { } try { window.screenLeft = 395 } catch (e) { } try { window.top.window.outerWidth = 1856 } catch (e) { } 
在芹菜任务中,我无法下载文件。当我调用
file
时,我得到
None

有人能给我指路吗?我在botocore文档中看到了,但我没有成功