0

をS3:ユーザーは、Facebookのメッセンジャーに画像を送信し、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

まずファイルをダウンロードする必要があります。 – jordanm

+0

私はそれを私のdjangoプロジェクト内の静的フォルダにダウンロードしてそこからアップロードすることをお勧めしますか?これはローカルでもAWSのEBでもうまくいくはずです。 S3にアップロードした後、ファイルを削除してストレージの使用量を適切に保つことができると思います – robjeiter

答えて

0

@jordanmが提案したように、ファイルをdjangoプロジェクトの静的フォルダにダウンロードし、そこからS3にアップロードしてから静的ファイルを削除します。

関連する問題