aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
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