代码之家  ›  专栏  ›  技术社区  ›  robjeiter

将图像从facebook messenger url上传到aws s3

  •  0
  • robjeiter  · 技术社区  · 7 年前

    以下情况:用户向facebook messenger发送图像,facebook提供如下url

    https://scontent.xx.fbcdn.net/v/t35.0-12/23998500_10155996498283474_1759188226_o.jpg?_nc_ad=z-m&_nc_cid=0&oh=44c94cc85e75048cc4355e7422281cf5&oe=5A1A5AE7

    我将这个url存储在一个名为url的变量中。现在,我想将该图像上传到我的AWS S3:

    import boto
    import os
    
    AWS_ACCESS_KEY_ID = ‘somekey’
    AWS_SECRET_ACCESS_KEY = 'somesecret'
    END_POINT = 'us-east-1'                          
    S3_HOST = 's3.us-east-1.amazonaws.com'              
    BUCKET_NAME = 'somestorage'
    
    def upload_s3(url):
        fname = url
        uploaded_fname = 'somename'
        s3 = boto.s3.connect_to_region(END_POINT,
                                   aws_access_key_id=AWS_ACCESS_KEY_ID,
                                   aws_secret_access_key=AWS_SECRET_ACCESS_KEY,
                                   host=S3_HOST)
    
        bucket = s3.get_bucket(BUCKET_NAME)
        k = Key(bucket)
        k.key = uploaded_fname
        k.set_contents_from_filename(fname) 
    

    然而,像这样的Python给我带来了一个错误,关于url没有这样的文件或目录。怎么走?

    1 回复  |  直到 7 年前
        1
  •  0
  •   robjeiter    7 年前

    正如@jordanm所建议的那样,将文件下载到django项目静态文件夹,从那里上传到S3,然后删除文件,然后从静态文件夹中删除。