aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2017-07-03 23:19:51 +0200
committerDavid Heinemeier Hansson <david@loudthinking.com>2017-07-03 23:19:51 +0200
commita91a30260b0d474fd1704b4cde7ee7c3bd1d9a41 (patch)
tree120b230a7414b9b8f93bfe4c5cacf9c6a7919771 /lib
parentb00ff22ca00f33c291b3beb2fe3818a2c30bab28 (diff)
downloadrails-a91a30260b0d474fd1704b4cde7ee7c3bd1d9a41.tar.gz
rails-a91a30260b0d474fd1704b4cde7ee7c3bd1d9a41.tar.bz2
rails-a91a30260b0d474fd1704b4cde7ee7c3bd1d9a41.zip
Update for AWS S3 v2 API and test it when supplying the right ENVs
Diffstat (limited to 'lib')
-rw-r--r--lib/active_file/site.rb1
-rw-r--r--lib/active_file/sites/s3_site.rb23
2 files changed, 9 insertions, 15 deletions
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