Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.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
Image 有没有办法将文件从url存储到s3';s的特定文件夹,不只是进入根目录?_Image_File_Amazon Web Services_Amazon S3_Upload - Fatal编程技术网

Image 有没有办法将文件从url存储到s3';s的特定文件夹,不只是进入根目录?

Image 有没有办法将文件从url存储到s3';s的特定文件夹,不只是进入根目录?,image,file,amazon-web-services,amazon-s3,upload,Image,File,Amazon Web Services,Amazon S3,Upload,找到了一种将文件从url上传到s3 bucket的方法,但是有没有一种方法可以将其定向到特定文件夹或创建文件夹 我使用下面的代码将其存储到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, settin

找到了一种将文件从url上传到s3 bucket的方法,但是有没有一种方法可以将其定向到特定文件夹或创建文件夹

我使用下面的代码将其存储到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
同样,这会将其保存到我的bucket的根目录中,但我不确定如何将其保存到现有文件夹中,或者在文件夹不存在时创建新文件夹


提前感谢

您非常接近,您可以将
k.key
设置为桶中对象的完整“路径”。 例如:

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

<>这将把它保存到一个名为“代码>照片”的文件夹中。不需要首先创建文件夹本身,因为S3文件夹实际上并不存在,但在对象键中出现一个或多个
/
意味着S3文件夹。不要在开始时添加
/

您非常接近,您可以将
k.key
设置为bucket中对象的完整“路径”。 例如:

k.key = 'photos/%s' % img_name
<>这将把它保存到一个名为“代码>照片”的文件夹中。不需要首先创建文件夹本身,因为S3文件夹实际上并不存在,但在对象键中出现一个或多个
/
意味着S3文件夹。不要在开头添加
/