通过代理服务器使用Boto从s3下载文件

暗海盗

我有一个文件到此地址:

http://s3.amazonaws.com/bucket-name/sdile_pr_2_1_1/pr/0/2/1/1/dile_0_2_1_1.nc

在s3存储桶中,我想通过flask应用程序进行访问。

为此,我创建了一个如下所示的函数:

@app.route('/select/dile')
def select_dile_by_uri():

    uri=request.args.get('uri')

    if uri is not None:
        if uri.startswith("http://s3.amazonaws.com/"):
            path        = uri.replace("http://s3.amazonaws.com/","")
            bname, kstr = path.split("/",1) # split the bname from the key string
            conn        = S3Connection(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)

            try:     
                bucket  = conn.get_bucket(bname)
            except:
                print "BUCKET NOT FOUND"
                return str("ERROR: bucket "+bname+" not found")
            else:
                print "BUCKET CONNECTED"
                try:
                    key = bucket.get_key(kstr)
                    print "KEY: ", key
                except:
                    print "KEY NOT FOUND"
                    return str("ERROR: key "+kstr+"not found")
                else:
                    try: 
                        key.open_read()                         # opens the file
                        headers = dict(key.resp.getheaders())   # request the headers
                        return Response(key, headers=headers)   # return a response                                  
                    except S3ResponseError as e:
                        return Response(e.body, status=e.status, headers=key.resp.getheaders()) 



    abort(400)

下载有效,但是下载文件的名称似乎只是“ dile”,而不是dile_0_2_1_1.nc。

怎么来的 ?我需要设置一些东西吗?

暗海盗

我需要做的是在标题中添加一个字段,特别是:

headers["Content-Disposition"] = "inline; filename=myfilename"

其中-myfilename-是您希望文件具有的名称。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Boto3:从S3下载文件

来自分类Dev

使用Laravel从Amazon S3下载文件

来自分类Dev

仅当远程文件比本地副本新时,才如何使用Boto从S3下载文件?

来自分类Dev

模拟boto3响应,用于从S3下载文件

来自分类Dev

使用boto3从S3存储桶下载文件时出现ValueError吗?

来自分类Dev

从API下载文件到Meteor服务器,然后上传到S3

来自分类Dev

通过Carrierwave和Fog从Amazon S3下载文件

来自分类Dev

在NodeJS中,如何从S3下载文件

来自分类Dev

如何强制wget在不修改系统文件的情况下使用代理服务器?

来自分类Dev

如何强制wget在不修改系统文件的情况下使用代理服务器?

来自分类Dev

使用PHP从Amazon S3下载文件后继续执行

来自分类Dev

使用代理服务器/防火墙从服务器使用cURL发布到远程服务器

来自分类Dev

使用代理服务器/防火墙从服务器使用cURL发布到远程服务器

来自分类Dev

如何使用Boto3创建预签名URL以从S3存储桶下载文件?

来自分类Dev

使用代理服务器充当主机文件

来自分类Dev

为什么代理服务器使用我的私有IP?

来自分类Dev

使用PHP从Amazon s3压缩并下载文件

来自分类Dev

S3 Boto3 Stubber没有映射的下载文件?

来自分类Dev

是否可以不通过boto3下载而获取S3文件的内容?

来自分类Dev

使用Boto下载S3文件

来自分类Dev

通过脚本从文件服务器下载文件

来自分类Dev

如何在不使用AWS CLI的情况下使用S3专用存储桶下载文件

来自分类Dev

通过php从s3下载大文件

来自分类Dev

从服务器Struts 2.0下载文件

来自分类Dev

使用SSH通过代理隧道传输流量-代理服务器看到什么?

来自分类Dev

通过网站从PHP服务器下载文件

来自分类Dev

如何通过javascript从tomcat服务器下载文件?

来自分类Dev

如何通过SSH服务器下载文件?

来自分类Dev

从S3下载文件> 3Gb失败,并显示“ SocketTimeoutException:读取超时”

Related 相关文章

  1. 1

    Boto3:从S3下载文件

  2. 2

    使用Laravel从Amazon S3下载文件

  3. 3

    仅当远程文件比本地副本新时,才如何使用Boto从S3下载文件?

  4. 4

    模拟boto3响应,用于从S3下载文件

  5. 5

    使用boto3从S3存储桶下载文件时出现ValueError吗?

  6. 6

    从API下载文件到Meteor服务器,然后上传到S3

  7. 7

    通过Carrierwave和Fog从Amazon S3下载文件

  8. 8

    在NodeJS中,如何从S3下载文件

  9. 9

    如何强制wget在不修改系统文件的情况下使用代理服务器?

  10. 10

    如何强制wget在不修改系统文件的情况下使用代理服务器?

  11. 11

    使用PHP从Amazon S3下载文件后继续执行

  12. 12

    使用代理服务器/防火墙从服务器使用cURL发布到远程服务器

  13. 13

    使用代理服务器/防火墙从服务器使用cURL发布到远程服务器

  14. 14

    如何使用Boto3创建预签名URL以从S3存储桶下载文件?

  15. 15

    使用代理服务器充当主机文件

  16. 16

    为什么代理服务器使用我的私有IP?

  17. 17

    使用PHP从Amazon s3压缩并下载文件

  18. 18

    S3 Boto3 Stubber没有映射的下载文件?

  19. 19

    是否可以不通过boto3下载而获取S3文件的内容?

  20. 20

    使用Boto下载S3文件

  21. 21

    通过脚本从文件服务器下载文件

  22. 22

    如何在不使用AWS CLI的情况下使用S3专用存储桶下载文件

  23. 23

    通过php从s3下载大文件

  24. 24

    从服务器Struts 2.0下载文件

  25. 25

    使用SSH通过代理隧道传输流量-代理服务器看到什么?

  26. 26

    通过网站从PHP服务器下载文件

  27. 27

    如何通过javascript从tomcat服务器下载文件?

  28. 28

    如何通过SSH服务器下载文件?

  29. 29

    从S3下载文件> 3Gb失败,并显示“ SocketTimeoutException:读取超时”

热门标签

归档