Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
paperclip
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ikcrm_common
paperclip
Commits
d55b4456
Commit
d55b4456
authored
Dec 22, 2015
by
Tute Costa
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Simplify S3 file. Doesn't need v1 branches.
parent
d570f1e4
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
14 additions
and
53 deletions
+14
-53
UPGRADING
+0
-5
lib/paperclip/storage/s3.rb
+14
-48
No files found.
UPGRADING
View file @
d55b4456
...
@@ -12,8 +12,3 @@ changes:
...
@@ -12,8 +12,3 @@ changes:
note that the format of the permissions changed from using an underscore to
note that the format of the permissions changed from using an underscore to
using a hyphen. For example, `:public_read` needs to be changed to
using a hyphen. For example, `:public_read` needs to be changed to
`public-read`.
`public-read`.
If you want to continue using an earlier version of aws-sdk, replace
aws-sdk with aws-sdk-v1 in your Gemfile.
If both are in your Gemfile, paperclip will use aws-sdk v2.
lib/paperclip/storage/s3.rb
View file @
d55b4456
...
@@ -41,7 +41,7 @@ module Paperclip
...
@@ -41,7 +41,7 @@ module Paperclip
# * +s3_permissions+: This is a String that should be one of the "canned" access
# * +s3_permissions+: This is a String that should be one of the "canned" access
# policies that S3 provides (more information can be found here:
# policies that S3 provides (more information can be found here:
# http://docs.aws.amazon.com/AmazonS3/latest/dev/ACLOverview.html)
# http://docs.aws.amazon.com/AmazonS3/latest/dev/ACLOverview.html)
# The default for Paperclip is
:public_read (aws-sdk v1) / public-read (aws-sdk v2)
.
# The default for Paperclip is
public-read
.
#
#
# You can set permission on a per style bases by doing the following:
# You can set permission on a per style bases by doing the following:
# :s3_permissions => {
# :s3_permissions => {
...
@@ -194,13 +194,11 @@ module Paperclip
...
@@ -194,13 +194,11 @@ module Paperclip
def
expiring_url
(
time
=
3600
,
style_name
=
default_style
)
def
expiring_url
(
time
=
3600
,
style_name
=
default_style
)
if
path
(
style_name
)
if
path
(
style_name
)
if
aws_v1?
base_options
=
{
expires_in:
time
}
base_options
=
{
:expires
=>
time
,
:secure
=>
use_secure_protocol?
(
style_name
)
}
s3_object
(
style_name
).
presigned_url
(
s3_object
(
style_name
).
url_for
(
:read
,
base_options
.
merge
(
s3_url_options
)).
to_s
:get
,
else
base_options
.
merge
(
s3_url_options
),
base_options
=
{
:expires_in
=>
time
}
).
to_s
s3_object
(
style_name
).
presigned_url
(
:get
,
base_options
.
merge
(
s3_url_options
)).
to_s
end
else
else
url
(
style_name
)
url
(
style_name
)
end
end
...
@@ -244,11 +242,7 @@ module Paperclip
...
@@ -244,11 +242,7 @@ module Paperclip
def
s3_interface
def
s3_interface
@s3_interface
||=
begin
@s3_interface
||=
begin
config
=
if
aws_v1?
config
=
{
region:
s3_region
}
{
:s3_endpoint
=>
s3_host_name
}
else
{
:region
=>
s3_region
}
end
if
using_http_proxy?
if
using_http_proxy?
...
@@ -272,19 +266,11 @@ module Paperclip
...
@@ -272,19 +266,11 @@ module Paperclip
def
obtain_s3_instance_for
(
options
)
def
obtain_s3_instance_for
(
options
)
instances
=
(
Thread
.
current
[
:paperclip_s3_instances
]
||=
{})
instances
=
(
Thread
.
current
[
:paperclip_s3_instances
]
||=
{})
instances
[
options
]
||=
if
aws_v1?
instances
[
options
]
||=
AWS_CLASS
::
S3
::
Resource
.
new
(
options
)
AWS_CLASS
::
S3
.
new
(
options
)
else
AWS_CLASS
::
S3
::
Resource
.
new
(
options
)
end
end
end
def
s3_bucket
def
s3_bucket
@s3_bucket
||=
if
aws_v1?
@s3_bucket
||=
s3_interface
.
bucket
(
bucket_name
)
s3_interface
.
buckets
[
bucket_name
]
else
s3_interface
.
bucket
(
bucket_name
)
end
end
end
def
style_name_as_path
(
style_name
)
def
style_name_as_path
(
style_name
)
...
@@ -292,11 +278,7 @@ module Paperclip
...
@@ -292,11 +278,7 @@ module Paperclip
end
end
def
s3_object
style_name
=
default_style
def
s3_object
style_name
=
default_style
if
aws_v1?
s3_bucket
.
object
style_name_as_path
(
style_name
)
s3_bucket
.
objects
[
style_name_as_path
(
style_name
)]
else
s3_bucket
.
object
(
style_name_as_path
(
style_name
))
end
end
end
def
using_http_proxy?
def
using_http_proxy?
...
@@ -367,11 +349,7 @@ module Paperclip
...
@@ -367,11 +349,7 @@ module Paperclip
end
end
def
create_bucket
def
create_bucket
if
aws_v1?
s3_interface
.
bucket
(
bucket_name
).
create
s3_interface
.
buckets
.
create
(
bucket_name
)
else
s3_interface
.
bucket
(
bucket_name
).
create
end
end
end
def
flush_writes
#:nodoc:
def
flush_writes
#:nodoc:
...
@@ -402,11 +380,7 @@ module Paperclip
...
@@ -402,11 +380,7 @@ module Paperclip
write_options
[
:metadata
]
=
@s3_metadata
unless
@s3_metadata
.
empty?
write_options
[
:metadata
]
=
@s3_metadata
unless
@s3_metadata
.
empty?
write_options
.
merge!
(
@s3_headers
)
write_options
.
merge!
(
@s3_headers
)
if
aws_v1?
s3_object
(
style
).
upload_file
(
file
.
path
,
write_options
)
s3_object
(
style
).
write
(
file
,
write_options
)
else
s3_object
(
style
).
upload_file
(
file
.
path
,
write_options
)
end
rescue
AWS_CLASS
::
S3
::
Errors
::
NoSuchBucket
rescue
AWS_CLASS
::
S3
::
Errors
::
NoSuchBucket
create_bucket
create_bucket
retry
retry
...
@@ -432,11 +406,7 @@ module Paperclip
...
@@ -432,11 +406,7 @@ module Paperclip
@queued_for_delete
.
each
do
|
path
|
@queued_for_delete
.
each
do
|
path
|
begin
begin
log
(
"deleting
#{
path
}
"
)
log
(
"deleting
#{
path
}
"
)
if
aws_v1?
s3_bucket
.
object
(
path
.
sub
(
%r{
\A
/}
,
""
)).
delete
s3_bucket
.
objects
[
path
.
sub
(
%r{
\A
/}
,
''
)]
else
s3_bucket
.
object
(
path
.
sub
(
%r{
\A
/}
,
''
))
end
.
delete
rescue
AWS_BASE_ERROR
=>
e
rescue
AWS_BASE_ERROR
=>
e
# Ignore this.
# Ignore this.
end
end
...
@@ -447,7 +417,7 @@ module Paperclip
...
@@ -447,7 +417,7 @@ module Paperclip
def
copy_to_local_file
(
style
,
local_dest_path
)
def
copy_to_local_file
(
style
,
local_dest_path
)
log
(
"copying
#{
path
(
style
)
}
to local file
#{
local_dest_path
}
"
)
log
(
"copying
#{
path
(
style
)
}
to local file
#{
local_dest_path
}
"
)
::
File
.
open
(
local_dest_path
,
'wb'
)
do
|
local_file
|
::
File
.
open
(
local_dest_path
,
'wb'
)
do
|
local_file
|
s3_object
(
style
).
send
(
aws_v1?
?
:
read
:
:get
)
do
|
chunk
|
s3_object
(
style
).
get
do
|
chunk
|
local_file
.
write
(
chunk
)
local_file
.
write
(
chunk
)
end
end
end
end
...
@@ -458,10 +428,6 @@ module Paperclip
...
@@ -458,10 +428,6 @@ module Paperclip
private
private
def
aws_v1?
Gem
::
Version
.
new
(
AWS_CLASS
::
VERSION
)
<
Gem
::
Version
.
new
(
2
)
end
def
find_credentials
creds
def
find_credentials
creds
case
creds
case
creds
when
File
when
File
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment