Ответ 1
Если вы знаете, что каталог существует, вы можете сделать
dir = connection.directories.new(:key => 'foo')# no request made
dir.files.create(...)
Вот Прохождение промаха по созданию файла (объекта S3) в каталоге (ведро S3):
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:
connection.directories.create
directory.files.create
Если у меня уже есть каталог (ведро S3), как создать файл (объект S3) только с одним вызовом Fog?
Если вы знаете, что каталог существует, вы можете сделать
dir = connection.directories.new(:key => 'foo')# no request made
dir.files.create(...)
Или, если у вас уже есть ведро, в котором вы хотите сохранить файл, то что вы можете сделать, это следующее:
bucket = connection.directories.get({BUCKET_NAME})
и после этого вы сможете вызвать bucket.files.create, чтобы хранить файлы в этом ковше.
Надеюсь, что это поможет!