2017-04-08 3 views
0

URLからs3バケットにファイルをアップロードする方法が見つかりましたが、特定のフォルダに移動する方法やフォルダを作成する方法がありますか?URLからs3の特定のフォルダにファイルを保存する方法はありますか?

は、私は再び

def save_image_s3(self, img_url, img_name): 
    """Saves the image in img_url into S3 with the name img_name""" 
    conn = boto.connect_s3(settings.AWS_ACCESS_KEY_ID, settings.AWS_SECRET_ACCESS_KEY) 
    bucket = conn.get_bucket(settings.AWS_STORAGE_BUCKET_NAME) 
    k = Key(bucket) 
    k.key = img_name 
    fp = StringIO.StringIO(urllib2.urlopen(img_url).read()) 
    k.set_contents_from_file(fp) 
    return img_name 

以下のコードを使用することによって、それはS3のルートに保存するために働いてもらう、これは私のバケットのルートディレクトリに保存しませんが、私はに保存することを指示することができますかわかりませんフォルダを既存またはフォルダはあなたが非常に接近している事前

答えて

2

おかげで存在しない場合は、新しいフォルダを作る、あなたのオブジェクトへのバケット内の完全な「パス」にk.keyを設定することができます。たとえば :

k.key = 'photos/%s' % img_name 

これは、あなたがphotosという名前の「フォルダ」を検討するものにそれを保存します。 S3フォルダは実際には存在しないが、オブジェクトキー内に現れる1つ以上の/の外観によって暗示されるため、フォルダ自体を最初に作成する必要はありません。最初に/を追加しないでください。

関連する問題