在存储桶中的特定文件夹内上传文件

时间:2020-09-16 12:45:08

标签: ruby-on-rails amazon-web-services ruby-on-rails-3 rubygems

我正在使用gem 'aws-sdk-s3',并且可以使用 Active-Storag e成功地将文件上传到 AWS 存储桶中,但是我不知道如何将文件上传到存储桶中的特定文件夹中?

1 个答案:

答案 0 :(得分:0)

初始化对象时,请按照https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/S3/Object.html#initialize-instance_method指定对象密钥:

构造函数详细信息 #initialize(存储桶名称,键,选项= {})⇒对象#initialize(选项= {})⇒对象

返回Object的新实例。

超载:

#initialize(bucket_name, key, options = {}) ⇒ Object

Parameters:
    bucket_name (String)
    key (String)

Options Hash (options):
    :client (Client)
#initialize(options = {}) ⇒ Object

Options Hash (options):
    :bucket_name (required, String)
    :key (required, String)
    :client (Client)

S3确实没有文件夹,只有密钥。然后,GUI使用键中的分隔符来模拟文件夹。因此,如果您希望对象位于特定的“文件夹”中,请确保该对象的键包含该文件夹路径。 来自https://docs.aws.amazon.com/AmazonS3/latest/user-guide/using-folders.html

Amazon S3具有扁平的结构,而不是像您那样的层次结构 在文件系统中查看。但是,为了组织起来 简单起见,Amazon S3控制台将文件夹概念作为 分组对象的手段。 Amazon S3通过使用共享名来实现 对象的前缀(即,对象的名称以 通用字符串)。对象名称也称为键名称。

例如,您可以在控制台上创建一个名为照片的文件夹,然后 在其中存储名为 myphoto.jpg 的对象。然后存储对象 的键名为 photos / myphoto.jpg