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呼び出しを1回だけ使用してファイル(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 に答える