carrierwave-aws 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0daf2d106b4a0d27f423cfbaa8745fa019d5f840
4
- data.tar.gz: 2213c9acca949bd4d1608a0fd08cbd96ed12b64b
3
+ metadata.gz: 875d0be2d2390acf2e6a8c01a0df45b726079fe6
4
+ data.tar.gz: 3ed7510ef62090d5ba7b1974d313df1e327571f4
5
5
  SHA512:
6
- metadata.gz: fa5b275f21820fb4fed97d1cd183a3f1ae909de304e1dd6616d64d4a047fa9d285b340a66fea9ad4a720df9ee6bf8e2ee3eb485277d58974fb22cde1b185ec7b
7
- data.tar.gz: abffdcdca5ee8d72c7daf90f4e6fc9ee18df1b3c30cc4e0a4e692214ea02b851254449364155b1b020f4a205e3f1f6ea20cb20bef6f264cb92318ffa803ff9f2
6
+ metadata.gz: aa2de20c43f2f6498533debf5027e55059383aaa273e210fb1f555c58d905e7353e507bf674459617235e86e0391c52492f6d48a5d92b168e25220249ad3f56a
7
+ data.tar.gz: dab3d28107e951dbfa5ab61e705aa49cdb6105619925ffe27acfb8aa79bbce945399bd28674d601bc85af9ceeb16697f9d3ffb99ed166b30c1a8bee261337f7c
@@ -1,4 +1,4 @@
1
1
  S3_BUCKET_NAME=BUCKET_NAME
2
2
  S3_ACCESS_KEY=YOUR_KEY
3
3
  S3_SECRET_ACCESS_KEY=YOUR_KEY
4
- S3_REGION=BUCKET_REGION
4
+ AWS_REGION=BUCKET_REGION
@@ -1,5 +1,6 @@
1
1
  sudo: false
2
2
  language: ruby
3
+ cache: bundler
3
4
  rvm:
4
5
  - 2.1.5
5
6
  - 2.2.2
@@ -7,19 +8,18 @@ rvm:
7
8
  matrix:
8
9
  allow_failures:
9
10
  - rvm: ruby-head
10
- script: bundle exec rspec
11
11
  env:
12
12
  global:
13
- - secure: |-
14
- A6i5I0Y+ifiJr2yotcjMBOZxRnhaPbuDTuMW3PMMUaqHsCc2A5Tqemenb7WG
15
- awCHOE6i9fuO/qAOPR3iKVdkR7Qv//CDtFZ9pZ7uiqVxfz1kYbv4aoPm1IvJ
16
- Kd6Nons/AjkD+yhobP8WgiIZI/QcSylDZYNCasTwQlfOCdYLnag=
17
- - secure: |-
18
- IE4oVY30L0OH10J/poiEZ1PyFZgPY7dH1FneJI5OeYJJ8GfEHoLuMJXgBmyX
19
- mC2v2PGK0pQTKGKFVV1mLhKdCzeLRCSMFqNvVo6blSoMLZoM1kj3sbU0kiIW
20
- qAgafLka3iyxQnPsvfmjLVei3h+HOUIUV6QmagjcMfZREHfTDZk=
21
- - secure: |-
22
- B75vnSCFTnQgCP4dmz78VN/WWj88Tpnh4cjUCU0cQjQ5M7oQ0KTbM0d7WDyf
23
- rf0F+B9OihBtLNQWqjocRvNH0dU5OzBLCC9DVolUgNwOdNTHW2I7CwlxJ5t7
24
- ljQTxzPP+tFASwzBHjywbo7n0EX3efT5UOZhbD9LZL93X4SOlyU=
25
- - secure: Uv276ljIrpfYNE34zKnawA6rxchmMymTzMs3LRcmsCDawDhNmtEuoqeHLiZctFU0k40YDylwcDXDWJayVDSW97+ytMqFfQ6e7HkL06iNZPcAW8V0LJt4SrVzRGIm6ER9Xib57lXhOnfS0jcVxT/UuD0pegvYdZb0VhUedmqInP0=
13
+ - secure: |-
14
+ A6i5I0Y+ifiJr2yotcjMBOZxRnhaPbuDTuMW3PMMUaqHsCc2A5Tqemenb7WG
15
+ awCHOE6i9fuO/qAOPR3iKVdkR7Qv//CDtFZ9pZ7uiqVxfz1kYbv4aoPm1IvJ
16
+ Kd6Nons/AjkD+yhobP8WgiIZI/QcSylDZYNCasTwQlfOCdYLnag=
17
+ - secure: |-
18
+ IE4oVY30L0OH10J/poiEZ1PyFZgPY7dH1FneJI5OeYJJ8GfEHoLuMJXgBmyX
19
+ mC2v2PGK0pQTKGKFVV1mLhKdCzeLRCSMFqNvVo6blSoMLZoM1kj3sbU0kiIW
20
+ qAgafLka3iyxQnPsvfmjLVei3h+HOUIUV6QmagjcMfZREHfTDZk=
21
+ - secure: |-
22
+ B75vnSCFTnQgCP4dmz78VN/WWj88Tpnh4cjUCU0cQjQ5M7oQ0KTbM0d7WDyf
23
+ rf0F+B9OihBtLNQWqjocRvNH0dU5OzBLCC9DVolUgNwOdNTHW2I7CwlxJ5t7
24
+ ljQTxzPP+tFASwzBHjywbo7n0EX3efT5UOZhbD9LZL93X4SOlyU=
25
+ - AWS_REGION=us-east-1
@@ -1,3 +1,9 @@
1
+ ## Version 1.0.1 2016-05-13
2
+
3
+ * Fixed: The `copy_to` method of `AWS::File` now uses the same `aws_acl`
4
+ configuration used on original uploads so ACL on copied files matches original
5
+ files. [Olivier Lacan]
6
+
1
7
  ## Version 1.0.0 2015-09-18
2
8
 
3
9
  * Added: ACL options are verified when they are set, and coerced into usable
data/README.md CHANGED
@@ -1,9 +1,9 @@
1
1
  # Carrierwave AWS Storage
2
2
 
3
- [![Build Status](https://travis-ci.org/sorentwo/carrierwave-aws.png?branch=master)](https://travis-ci.org/sorentwo/carrierwave-aws)
4
- [![Code Climate](https://codeclimate.com/github/sorentwo/carrierwave-aws.png)](https://codeclimate.com/github/sorentwo/carrierwave-aws)
5
- [![Gem Version](https://badge.fury.io/rb/carrierwave-aws.png)](http://badge.fury.io/rb/carrierwave-aws)
6
- [![Dependency Status](https://gemnasium.com/sorentwo/carrierwave-aws.png)](https://gemnasium.com/sorentwo/carrierwave-aws)
3
+ [![Build Status](https://travis-ci.org/sorentwo/carrierwave-aws.svg?branch=master)](https://travis-ci.org/sorentwo/carrierwave-aws)
4
+ [![Code Climate](https://codeclimate.com/github/sorentwo/carrierwave-aws.svg)](https://codeclimate.com/github/sorentwo/carrierwave-aws)
5
+ [![Gem Version](https://badge.fury.io/rb/carrierwave-aws.svg)](http://badge.fury.io/rb/carrierwave-aws)
6
+ [![Dependency Status](https://gemnasium.com/sorentwo/carrierwave-aws.svg)](https://gemnasium.com/sorentwo/carrierwave-aws)
7
7
 
8
8
  Use the officially supported AWS-SDK library for S3 storage rather than relying
9
9
  on fog. There are several things going for it:
@@ -28,6 +28,11 @@ Add this line to your application's Gemfile:
28
28
  gem 'carrierwave-aws'
29
29
  ```
30
30
 
31
+ Run the bundle command from your shell to install it:
32
+ ```bash
33
+ bundle install
34
+ ```
35
+
31
36
  ## Usage
32
37
 
33
38
  Configure and use it just like you would Fog. The only notable difference is
@@ -59,8 +64,7 @@ CarrierWave.configure do |config|
59
64
  region: ENV.fetch('AWS_REGION') # Required
60
65
  }
61
66
 
62
- # Optional: Signing of download urls, e.g. for serving private
63
- # content through CloudFront.
67
+ # Optional: Signing of download urls, e.g. for serving private content through CloudFront.
64
68
  config.aws_signer = -> (unsigned_url, options) { Aws::CF::Signer.sign_url unsigned_url, options }
65
69
  end
66
70
  ```
@@ -72,11 +76,11 @@ If you have a custom uploader that specifies additional headers for each URL, pl
72
76
  ```ruby
73
77
  class MyUploader < Carrierwave::Uploader::Base
74
78
  # Storage configuration within the uploader supercedes the global CarrierWave
75
- # config, so be sure that your uploader does not contain `storage :file`, or
79
+ # config, so either comment out `storage :file`, or remove that line, otherwise
76
80
  # AWS will not be used.
77
81
  storage :aws
78
82
 
79
- # You can find full list of custom headers in AWS SDK documentation on
83
+ # You can find a full list of custom headers in AWS SDK documentation on
80
84
  # AWS::S3::S3Object
81
85
  def download_url(filename)
82
86
  url(response_content_disposition: %Q{attachment; filename="#{filename}"})
@@ -84,8 +88,29 @@ class MyUploader < Carrierwave::Uploader::Base
84
88
  end
85
89
  ```
86
90
 
87
- If you migrate from `fog` you probably have something like `url(query: {'my-header': 'my-value'})`.
91
+
92
+ ## Migrating From Fog
93
+
94
+ If you migrate from `fog` your uploader may be configured as `storage :fog`, simply comment out that line, as in the following example, or remove that specific line.
95
+
96
+ ```ruby
97
+ class MyUploader < Carrierwave::Uploader::Base
98
+ # Storage configuration within the uploader supercedes the global CarrierWave
99
+ # config, so adjust accordingly...
100
+
101
+ # Choose what kind of storage to use for this uploader:
102
+ # storage :file
103
+ # storage :fog
104
+ storage :aws
105
+
106
+
107
+ # More comments below in your file....
108
+ end
109
+ ```
110
+
111
+ Another item particular to fog, you may have `url(query: {'my-header': 'my-value'})`.
88
112
  With `carrierwave-aws` the `query` part becomes obsolete, just use a hash of headers.
113
+ If you skipped the section regarding Usage, you'll want to be sure everything is configured as it's explained in that section as well.
89
114
 
90
115
  ## Contributing
91
116
 
@@ -19,5 +19,6 @@ Gem::Specification.new do |gem|
19
19
  gem.add_dependency 'carrierwave', '~> 0.7'
20
20
  gem.add_dependency 'aws-sdk', '~> 2.0'
21
21
 
22
- gem.add_development_dependency 'rspec', '~> 3'
22
+ gem.add_development_dependency 'rake', '~> 10.0'
23
+ gem.add_development_dependency 'rspec', '~> 3.0'
23
24
  end
@@ -1,5 +1,5 @@
1
1
  module Carrierwave
2
2
  module AWS
3
- VERSION = '1.0.0'
3
+ VERSION = '1.0.1'
4
4
  end
5
5
  end
@@ -4,6 +4,8 @@ module CarrierWave
4
4
  attr_writer :file
5
5
  attr_accessor :uploader, :connection, :path, :aws_options
6
6
 
7
+ delegate :content_type, :delete, :exists?, :size, to: :file
8
+
7
9
  def initialize(uploader, connection, path)
8
10
  @uploader = uploader
9
11
  @connection = connection
@@ -21,18 +23,6 @@ module CarrierWave
21
23
  file.data.to_h
22
24
  end
23
25
 
24
- def content_type
25
- file.content_type
26
- end
27
-
28
- def delete
29
- file.delete
30
- end
31
-
32
- def exists?
33
- file.exists?
34
- end
35
-
36
26
  def extension
37
27
  elements = path.split('.')
38
28
  elements.last if elements.size > 1
@@ -48,16 +38,15 @@ module CarrierWave
48
38
  file.get(aws_options.read_options).body.read
49
39
  end
50
40
 
51
- def size
52
- file.content_length
53
- end
54
-
55
41
  def store(new_file)
56
42
  !!file.put(aws_options.write_options(new_file))
57
43
  end
58
44
 
59
45
  def copy_to(new_path)
60
- bucket.object(new_path).copy_from(copy_source: "#{bucket.name}/#{file.key}")
46
+ bucket.object(new_path).copy_from(
47
+ copy_source: "#{bucket.name}/#{file.key}",
48
+ acl: uploader.aws_acl
49
+ )
61
50
  end
62
51
 
63
52
  def signed_url(options = {})
@@ -19,7 +19,11 @@ describe 'Copying Files', type: :feature do
19
19
  copy_attributes = copy.file.attributes
20
20
  copy_attributes.reject! { |k,v| k == :last_modified }
21
21
 
22
+ copy_acl_grants = copy.file.file.acl.grants
23
+ original_acl_grants = original.file.file.acl.grants
24
+
22
25
  expect(copy_attributes).to eq(original_attributes)
26
+ expect(copy_acl_grants).to eq(original_acl_grants)
23
27
 
24
28
  image.close
25
29
  original.file.delete
@@ -0,0 +1,14 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Deleting Files', type: :feature do
4
+ let(:image) { File.open('spec/fixtures/image.png', 'r') }
5
+ let(:instance) { FeatureUploader.new }
6
+
7
+ before do
8
+ instance.aws_acl = 'public-read'
9
+ instance.store!(image)
10
+ end
11
+
12
+ it 'deletes the image when assigned a `nil` value' do
13
+ end
14
+ end
@@ -57,7 +57,8 @@ describe 'Storing Files', type: :feature do
57
57
  instance.store!(image)
58
58
  instance.retrieve_from_store!('image.png')
59
59
 
60
- expect(instance.url).to eq("https://#{ENV['S3_BUCKET_NAME']}.s3.amazonaws.com/#{instance.path}")
60
+ expect(instance.url).to include(ENV['S3_BUCKET_NAME'])
61
+ expect(instance.url).to include(instance.path)
61
62
 
62
63
  image.close
63
64
  instance.file.delete
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: carrierwave-aws
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Parker Selbert
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-18 00:00:00.000000000 Z
11
+ date: 2016-05-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: carrierwave
@@ -38,20 +38,34 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '2.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '10.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '10.0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rspec
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
59
  - - "~>"
46
60
  - !ruby/object:Gem::Version
47
- version: '3'
61
+ version: '3.0'
48
62
  type: :development
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
66
  - - "~>"
53
67
  - !ruby/object:Gem::Version
54
- version: '3'
68
+ version: '3.0'
55
69
  description: Use aws-sdk for S3 support in CarrierWave
56
70
  email:
57
71
  - parker@sorentwo.com
@@ -81,6 +95,7 @@ files:
81
95
  - spec/carrierwave/storage/aws_spec.rb
82
96
  - spec/carrierwave/support/uri_filename_spec.rb
83
97
  - spec/features/copying_files_spec.rb
98
+ - spec/features/deleting_files_spec.rb
84
99
  - spec/features/storing_files_spec.rb
85
100
  - spec/fixtures/image.png
86
101
  - spec/spec_helper.rb
@@ -103,7 +118,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
103
118
  version: '0'
104
119
  requirements: []
105
120
  rubyforge_project:
106
- rubygems_version: 2.4.5.1
121
+ rubygems_version: 2.5.1
107
122
  signing_key:
108
123
  specification_version: 4
109
124
  summary: A slimmer alternative to using Fog for S3 support in CarrierWave
@@ -114,6 +129,7 @@ test_files:
114
129
  - spec/carrierwave/storage/aws_spec.rb
115
130
  - spec/carrierwave/support/uri_filename_spec.rb
116
131
  - spec/features/copying_files_spec.rb
132
+ - spec/features/deleting_files_spec.rb
117
133
  - spec/features/storing_files_spec.rb
118
134
  - spec/fixtures/image.png
119
135
  - spec/spec_helper.rb