client = Aws::S3::Client.new(region: 'eu-west-2',
access_key_id: '...',
secret_access_key: '...')
# buckets are top-level, there are no sub-buckets and must be unique
client.create_bucket(bucket: 'acme-test', acl: 'private')
client.delete_bucket(bucket: 'acme-test')
# delete folders/files
# if the folder is not empty it will remain until all contents are deleted.
client.delete_object(bucket: 'acme-test', key: 'documents/')
# create folder (key must end in a slash)
client.put_object(bucket: 'acme-test', key: 'documents/')
# upload a file
client.put_object(bucket: 'acme-test', key: 'documents/my.csv', body: File.read(path_to_csv_file))
client.put_object(bucket: 'acme-test', key: 'documents/my.csv', body: File.read(path_to_csv_file), metadata: { "hostname" => 'example.com' })
# delete everything in a folder (and sub-folders)
client.list_objects(bucket: 'acme-test', prefix: 'one/').contents.each do |obj|
client.delete_object(bucket: 'acme-test', key: obj.key)
end