Class: Prebundler::S3Backend
- Inherits:
-
Object
- Object
- Prebundler::S3Backend
- Defined in:
- lib/prebundler/s3_backend.rb
Instance Attribute Summary collapse
-
#access_key_id ⇒ Object
readonly
Returns the value of attribute access_key_id.
-
#bucket ⇒ Object
readonly
Returns the value of attribute bucket.
-
#region ⇒ Object
readonly
Returns the value of attribute region.
-
#secret_access_key ⇒ Object
readonly
Returns the value of attribute secret_access_key.
Instance Method Summary collapse
- #docker_flags ⇒ Object
-
#initialize(options = {}) ⇒ S3Backend
constructor
A new instance of S3Backend.
- #list_files ⇒ Object
- #retrieve_file(source_file, dest_file) ⇒ Object
- #store_file(source_file, dest_file) ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ S3Backend
Returns a new instance of S3Backend.
9 10 11 12 13 14 15 16 |
# File 'lib/prebundler/s3_backend.rb', line 9 def initialize( = {}) @bucket = .fetch(:bucket) @client = .fetch(:client, nil) @access_key_id = .fetch(:access_key_id, nil) @secret_access_key = .fetch(:secret_access_key, nil) @region = .fetch(:region) { ENV['AWS_REGION'] || 'us-east-1' } end |
Instance Attribute Details
#access_key_id ⇒ Object (readonly)
Returns the value of attribute access_key_id.
7 8 9 |
# File 'lib/prebundler/s3_backend.rb', line 7 def access_key_id @access_key_id end |
#bucket ⇒ Object (readonly)
Returns the value of attribute bucket.
7 8 9 |
# File 'lib/prebundler/s3_backend.rb', line 7 def bucket @bucket end |
#region ⇒ Object (readonly)
Returns the value of attribute region.
7 8 9 |
# File 'lib/prebundler/s3_backend.rb', line 7 def region @region end |
#secret_access_key ⇒ Object (readonly)
Returns the value of attribute secret_access_key.
7 8 9 |
# File 'lib/prebundler/s3_backend.rb', line 7 def secret_access_key @secret_access_key end |
Instance Method Details
#docker_flags ⇒ Object
60 61 62 |
# File 'lib/prebundler/s3_backend.rb', line 60 def docker_flags [] end |
#list_files ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/prebundler/s3_backend.rb', line 32 def list_files truncated = true continuation_token = nil files = [] = { bucket: bucket, prefix: "#{Bundler.local_platform}/#{Prebundler.platform_version}/#{Gem.extension_api_version}" } while truncated = if continuation_token .merge(continuation_token: continuation_token) else end response = client.list_objects_v2() truncated = response.is_truncated continuation_token = response.next_continuation_token response.contents.each do |file| files << file.key end end files end |
#retrieve_file(source_file, dest_file) ⇒ Object
24 25 26 27 28 29 30 |
# File 'lib/prebundler/s3_backend.rb', line 24 def retrieve_file(source_file, dest_file) client.get_object( bucket: bucket, key: source_file, response_target: dest_file ) end |
#store_file(source_file, dest_file) ⇒ Object
18 19 20 21 22 |
# File 'lib/prebundler/s3_backend.rb', line 18 def store_file(source_file, dest_file) File.open(source_file) do |io| client.put_object(bucket: bucket, key: dest_file, body: io) end end |