# s3 **Repository Path**: mirrors_simi/s3 ## Basic Information - **Project Name**: s3 - **Description**: Library for accessing S3 objects and buckets, supports EU and US buckets - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-10-27 - **Last Updated**: 2026-02-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README = S3 S3 library provides access to {Amazon's Simple Storage Service}[http://aws.amazon.com/s3/]. It supports both: European and US buckets through the {REST API}[http://docs.amazonwebservices.com/AmazonS3/latest/API/APIRest.html]. == Installation gem install s3 == Usage === Initialize the service require "s3" service = S3::Service.new(:access_key_id => "...", :secret_access_key => "...") #=> # === List buckets service.buckets #=> [#, # #] === Find bucket first_bucket = service.buckets.find("first-bucket") #=> # === Create bucket new_bucket = service.buckets.build("newbucketname") new_bucket.save(:location => :eu) Remember that bucket name for EU can't include "_" (underscore). Please refer to: http://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html for more information about bucket name restrictions. === List objects in a bucket first_bucket.objects #=> [#, # #] === Find object in a bucket object = first_bucket.objects.find("lenna.png") #=> # === Access object metadata (cached from find) object.content_type #=> "image/png" === Access object content (downloads the object) object.content #=> "\x89PNG\r\n\x1A\n\x00\x00\x00\rIHDR\x00..." === Delete an object object.destroy #=> true === Create an object new_object = bucket.objects.build("bender.png") #=> # new_object.content = open("bender.png") new_object.save #=> true Please note that new objects are created with "public-read" ACL by default. === Fetch ACL object = bucket.objects.find('lenna.png') object.request_acl # or bucket.request_acl This will return hash with all users/groups and theirs permissions === Modify ACL object = bucket.objects.find("lenna.png") object.copy(:key => "lenna.png", :bucket => bucket, :acl => :private) === Upload file direct to amazon ==== Rails 3 To do that you just send file using proper form direct to amazon. You can create simple halper for that, for example like this one: https://gist.github.com/3169039 == See also * rubygems[http://rubygems.org/gems/s3] * repository[http://github.com/qoobaa/s3] * {issue tracker}[http://github.com/qoobaa/s3/issues] * documentation[http://rubydoc.info/github/qoobaa/s3/master/frames] == Copyright Copyright (c) 2009 Jakub Kuźma, Mirosław Boruta. See LICENSE[http://github.com/qoobaa/s3/raw/master/LICENSE] for details.