【问题标题】:is there a way to store a file from url into s3's specific folder, not just into the root?有没有办法将文件从 url 存储到 s3 的特定文件夹中,而不仅仅是根目录?
【发布时间】:2017-09-03 11:41:19
【问题描述】:

找到了一种将文件从 url 上传到 s3 存储桶的方法,但有没有办法将其定向到特定文件夹或创建文件夹?

我可以使用下面的代码将其存储到 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

同样,这确实将其保存到我的存储桶的根目录中,但我不确定如何将其保存到现有文件夹中,或者如果文件夹不存在则创建一个新文件夹

提前致谢

【问题讨论】:

    标签: image file amazon-web-services amazon-s3 upload


    【解决方案1】:

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

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

    这会将其保存到您认为的名为photos 的“文件夹”中。不需要先创建文件夹本身,因为 S3 文件夹实际上并不存在,而是通过出现在对象键中的一个或多个 / 来暗示。不要在开头添加/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-24
      • 2020-04-01
      • 2011-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多