carrierwave-aws 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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