From 83bfe0758363328a2cc4da54c9f02c10a29d8149 Mon Sep 17 00:00:00 2001
From: Yuji Yaginuma <yuuji.yaginuma@gmail.com>
Date: Sun, 10 Sep 2017 12:22:10 +0900
Subject: Use v3 of the AWS SDK

---
 Gemfile                                                |  2 +-
 Gemfile.lock                                           | 17 +++++++++++------
 activestorage/lib/active_storage/service/s3_service.rb |  6 +++---
 3 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/Gemfile b/Gemfile
index 4928b0b1f8..abdba3909e 100644
--- a/Gemfile
+++ b/Gemfile
@@ -95,7 +95,7 @@ group :cable do
 end
 
 group :storage do
-  gem "aws-sdk", "~> 2", require: false
+  gem "aws-sdk-s3", require: false
   gem "google-cloud-storage", "~> 1.3", require: false
   gem "azure-storage", require: false
 
diff --git a/Gemfile.lock b/Gemfile.lock
index 387bd608f9..c27b410bb9 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -119,13 +119,18 @@ GEM
       public_suffix (~> 2.0, >= 2.0.2)
     amq-protocol (2.2.0)
     ast (2.3.0)
-    aws-sdk (2.10.27)
-      aws-sdk-resources (= 2.10.27)
-    aws-sdk-core (2.10.27)
+    aws-partitions (1.20.0)
+    aws-sdk-core (3.3.0)
+      aws-partitions (~> 1.0)
       aws-sigv4 (~> 1.0)
       jmespath (~> 1.0)
-    aws-sdk-resources (2.10.27)
-      aws-sdk-core (= 2.10.27)
+    aws-sdk-kms (1.1.0)
+      aws-sdk-core (~> 3)
+      aws-sigv4 (~> 1.0)
+    aws-sdk-s3 (1.2.0)
+      aws-sdk-core (~> 3)
+      aws-sdk-kms (~> 1)
+      aws-sigv4 (~> 1.0)
     aws-sigv4 (1.0.1)
     azure-core (0.1.11)
       faraday (~> 0.9)
@@ -477,7 +482,7 @@ DEPENDENCIES
   activerecord-jdbcpostgresql-adapter (>= 1.3.0)
   activerecord-jdbcsqlite3-adapter (>= 1.3.0)
   arel!
-  aws-sdk (~> 2)
+  aws-sdk-s3
   azure-storage
   backburner
   bcrypt (~> 3.1.11)
diff --git a/activestorage/lib/active_storage/service/s3_service.rb b/activestorage/lib/active_storage/service/s3_service.rb
index e5d1e56e05..e074269353 100644
--- a/activestorage/lib/active_storage/service/s3_service.rb
+++ b/activestorage/lib/active_storage/service/s3_service.rb
@@ -1,6 +1,6 @@
 # frozen_string_literal: true
 
-require "aws-sdk"
+require "aws-sdk-s3"
 require "active_support/core_ext/numeric/bytes"
 
 module ActiveStorage
@@ -54,7 +54,7 @@ module ActiveStorage
 
     def url(key, expires_in:, filename:, disposition:, content_type:)
       instrument :url, key do |payload|
-        generated_url = object_for(key).presigned_url :get, expires_in: expires_in,
+        generated_url = object_for(key).presigned_url :get, expires_in: expires_in.to_i,
           response_content_disposition: disposition,
           response_content_type: content_type
 
@@ -66,7 +66,7 @@ module ActiveStorage
 
     def url_for_direct_upload(key, expires_in:, content_type:, content_length:, checksum:)
       instrument :url, key do |payload|
-        generated_url = object_for(key).presigned_url :put, expires_in: expires_in,
+        generated_url = object_for(key).presigned_url :put, expires_in: expires_in.to_i,
           content_type: content_type, content_length: content_length, content_md5: checksum
 
         payload[:url] = generated_url
-- 
cgit v1.2.3