11

这是在目录(S3 存储桶)中创建文件(S3 对象)的 Fog 演练

connection = Fog::Storage.new({
  :provider                 => 'AWS',
  :aws_access_key_id        => YOUR_AWS_ACCESS_KEY_ID,
  :aws_secret_access_key    => YOUR_AWS_SECRET_ACCESS_KEY
})

directory = connection.directories.create(
  :key    => "fog-demo-#{Time.now.to_i}", # globally unique name
  :public => true
)

file = directory.files.create(
  :key    => 'resume.html',
  :body   => File.open("/path/to/my/resume.html"),
  :public => true
)

但在我看来,这似乎需要 2 个 API 调用:

  1. connection.directories.create
  2. directory.files.create

如果我已经创建了目录(一个 S3 存储桶),我如何创建一个只有一个 Fog 调用的文件(一个 S3 对象)?

4

2 回答 2

17

如果您知道该目录存在,您可以这样做

dir = connection.directories.new(:key => 'foo')# no request made
dir.files.create(...)
于 2012-09-05T19:39:36.000 回答
3

或者,如果您已经有一个要存储文件的存储桶,那么您可以执行以下操作:

bucket = connection.directories.get({BUCKET_NAME})

之后,您将能够调用 bucket.files.create,将文件存储在该存储桶上。

希望能帮助到你!

于 2014-10-21T07:23:19.720 回答