From 0e01d65879e51fef5e62a987c9adc6f277913eff Mon Sep 17 00:00:00 2001 From: Jonathan Rochkind Date: Thu, 17 May 2018 11:05:17 -0400 Subject: [PATCH] For s3 driver, configurable expires_in for signed_urls --- lib/browse_everything/driver/s3.rb | 4 ++-- .../templates/browse_everything_providers.yml.example | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/browse_everything/driver/s3.rb b/lib/browse_everything/driver/s3.rb index 055604da..018bf607 100644 --- a/lib/browse_everything/driver/s3.rb +++ b/lib/browse_everything/driver/s3.rb @@ -6,7 +6,7 @@ module BrowseEverything module Driver class S3 < Base - DEFAULTS = { response_type: :signed_url }.freeze + DEFAULTS = { response_type: :signed_url, expires_in: 14400 }.freeze RESPONSE_TYPES = %i[signed_url public_url s3_uri].freeze CONFIG_KEYS = %i[bucket].freeze @@ -62,7 +62,7 @@ def details(path) def link_for(path) obj = bucket.object(full_path(path)) case config[:response_type].to_sym - when :signed_url then obj.presigned_url(:get, expires_in: 14400) + when :signed_url then obj.presigned_url(:get, expires_in: config[:expires_in]) when :public_url then obj.public_url when :s3_uri then "s3://#{obj.bucket_name}/#{obj.key}" end diff --git a/lib/generators/browse_everything/templates/browse_everything_providers.yml.example b/lib/generators/browse_everything/templates/browse_everything_providers.yml.example index ce249447..02b9d294 100644 --- a/lib/generators/browse_everything/templates/browse_everything_providers.yml.example +++ b/lib/generators/browse_everything/templates/browse_everything_providers.yml.example @@ -14,6 +14,7 @@ # s3: # bucket: YOUR_AWS_S3_BUCKET # response_type: :signed_url # set to :public_url for public urls or :s3_uri for an s3://BUCKET/KEY uri +# expires_in: 14400 # for signed_url response_type, number of seconds url will be valid for. # app_key: YOUR_AWS_S3_KEY # :app_key, :app_secret, and :region can be specified # app_secret: YOUR_AWS_S3_SECRET # explicitly here, or left out to use system-configured # region: YOUR_AWS_S3_REGION # defaults.