From a91a30260b0d474fd1704b4cde7ee7c3bd1d9a41 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 3 Jul 2017 23:19:51 +0200 Subject: Update for AWS S3 v2 API and test it when supplying the right ENVs --- lib/active_file/site.rb | 1 + lib/active_file/sites/s3_site.rb | 23 ++++++++--------------- 2 files changed, 9 insertions(+), 15 deletions(-) (limited to 'lib') diff --git a/lib/active_file/site.rb b/lib/active_file/site.rb index 33494b916a..e44c0145a9 100644 --- a/lib/active_file/site.rb +++ b/lib/active_file/site.rb @@ -41,3 +41,4 @@ module ActiveFile::Sites end require "active_file/sites/disk_site" +require "active_file/sites/s3_site" diff --git a/lib/active_file/sites/s3_site.rb b/lib/active_file/sites/s3_site.rb index 838163a23d..4ede843cb4 100644 --- a/lib/active_file/sites/s3_site.rb +++ b/lib/active_file/sites/s3_site.rb @@ -16,7 +16,7 @@ class ActiveFile::Sites::S3Site < ActiveFile::Site if block_given? stream(key, &block) else - object_for(key).read + object_for(key).get.body.read end end @@ -25,27 +25,20 @@ class ActiveFile::Sites::S3Site < ActiveFile::Site end def exist?(key) - object_for(key).exist? + object_for(key).exists? end + def url(key, disposition: :inline, expires_in: nil) + object_for(key).presigned_url(:get, expires_in: expires_in) + end + def byte_size(key) - object_for(key).head[:size] + object_for(key).size end def checksum(key) - head = object_for(key).head - - # If the etag has no dashes, it's the MD5 - if !head.etag.include?("-") - head.etag.gsub('"', '') - # Check for md5 in metadata if it was uploaded via multipart - elsif md5sum = head.meta["md5sum"] - md5sum - # Otherwise, we don't have a digest yet for this key - else - nil - end + object_for(key).etag.remove(/"/) end -- cgit v1.2.3