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