carrierwave-aliyun-crud 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -17,16 +17,30 @@ gem 'carrierwave-aliyun-crud'
17
17
 
18
18
  ## Configuration
19
19
 
20
- 创建这么个脚本 `config/initializes/carrierwave.rb` 填入下面的代码,并修改对应的配置:
20
+ 创建脚本 `config/initializes/carrierwave.rb` 填入下面的代码,并修改对应的配置:
21
21
 
22
22
  ```ruby
23
23
  CarrierWave.configure do |config|
24
24
  config.storage = :aliyun
25
25
  config.aliyun_access_id = "xxxxxx"
26
26
  config.aliyun_access_key = 'xxxxxx'
27
- # 你需要在 Aliyum OSS 上面提前创建一个 Bucket
27
+ # 需要在 Aliyum OSS 上面提前创建一个 Bucket
28
28
  config.aliyun_bucket = "simple"
29
29
  # 是否使用内部连接,true - 使用 Aliyun 局域网的方式访问 false - 外部网络访问
30
30
  config.aliyun_internal = true
31
31
  end
32
- ```
32
+ ```
33
+ ## Usage
34
+
35
+ 上传文件
36
+
37
+ ```ruby
38
+ CarrierWave::Storage::Aliyun::Connection.new(options).put relative_store_url, File.read(file_path)
39
+ ```
40
+
41
+ 删除文件
42
+
43
+ ```ruby
44
+ CarrierWave::Storage::Aliyun::Connection.new(options).delete relative_store_url
45
+ #如果删除的文件不存在,不会有异常
46
+ ```
@@ -1,6 +1,8 @@
1
1
  require "carrierwave/storage/aliyun"
2
2
  require 'carrierwave/processing/mime_types'
3
3
  require "carrierwave/aliyun/configuration"
4
+
5
+
4
6
  CarrierWave.configure do |config|
5
7
  config.storage_engines.merge!({:aliyun => "CarrierWave::Storage::Aliyun"})
6
8
  end
@@ -4,6 +4,7 @@ require 'digest/hmac'
4
4
  require 'digest/md5'
5
5
  require 'net/http'
6
6
  require "rest-client"
7
+ require 'uri'
7
8
 
8
9
  module CarrierWave
9
10
  module Storage
@@ -26,14 +27,14 @@ module CarrierWave
26
27
  path = "#{@aliyun_bucket}/#{path}"
27
28
  url = "http://#{@aliyun_host}/#{path}"
28
29
  headers = generate_header("PUT", path, content_md5, options).merge!({"Content-Length" => file.length})
29
- RestClient.put url, file, headers
30
+ RestClient.put URI.escape(url), file, headers
30
31
  end
31
32
 
32
33
  def get(path, options={})
33
34
  path = "#{@aliyun_bucket}/#{path}"
34
35
  url = "http://#{@aliyun_host}/#{path}"
35
36
  headers = generate_header "GET", path, "", options
36
- RestClient.get url, headers
37
+ RestClient.get URI.escape(url), headers
37
38
  end
38
39
 
39
40
  def delete path
@@ -45,7 +46,7 @@ module CarrierWave
45
46
  "Date" => date,
46
47
  "Host" => @aliyun_host,
47
48
  }
48
- RestClient.delete url, headers
49
+ RestClient.delete URI.escape(url), headers
49
50
  end
50
51
 
51
52
  private
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: carrierwave-aliyun-crud
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-20 00:00:00.000000000 Z
12
+ date: 2013-03-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: carrierwave
@@ -50,21 +50,10 @@ executables: []
50
50
  extensions: []
51
51
  extra_rdoc_files: []
52
52
  files:
53
- - .gitignore
54
- - .rspec
55
- - Changelogs.md
56
- - Gemfile
57
- - Gemfile.lock
58
- - README.md
59
- - carrierwave-aliyun-crud.gemspec
60
- - lib/carrierwave-aliyun-crud.rb
61
53
  - lib/carrierwave/aliyun/configuration.rb
62
54
  - lib/carrierwave/storage/aliyun.rb
63
- - spec/foo.gif
64
- - spec/foo.jpg
65
- - spec/foo.zip
66
- - spec/spec_helper.rb
67
- - spec/upload_spec.rb
55
+ - lib/carrierwave-aliyun-crud.rb
56
+ - README.md
68
57
  homepage: https://github.com/warmwind/carrierwave-aliyun-crud
69
58
  licenses: []
70
59
  post_install_message:
@@ -85,13 +74,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
85
74
  version: '0'
86
75
  requirements: []
87
76
  rubyforge_project:
88
- rubygems_version: 1.8.24
77
+ rubygems_version: 1.8.23
89
78
  signing_key:
90
79
  specification_version: 3
91
80
  summary: Aliyun OSS support for Carrierwave
92
- test_files:
93
- - spec/foo.gif
94
- - spec/foo.jpg
95
- - spec/foo.zip
96
- - spec/spec_helper.rb
97
- - spec/upload_spec.rb
81
+ test_files: []
data/.gitignore DELETED
@@ -1,2 +0,0 @@
1
- uploads
2
- *.gem
data/.rspec DELETED
@@ -1 +0,0 @@
1
- --colour --format nested
data/Changelogs.md DELETED
@@ -1,12 +0,0 @@
1
- ## 0.1.2
2
-
3
- * 修正 content_type 的支持,自动用原始文件的 content_type,以免上传 zip 之类的文件以后无法下载.
4
-
5
- ## 0.1.1
6
-
7
- * 修改 Aliyun OSS 的请求地址.
8
- * 加入可选项,使用 Aliyun 内部地址调用上传,以提高内部网络使用的速度.
9
-
10
- ## 0.1.0
11
-
12
- * 功能实现.
data/Gemfile DELETED
@@ -1,12 +0,0 @@
1
- source "http://ruby.taobao.org"
2
- gem "rake"
3
-
4
- group :test do
5
- gem 'rails'
6
- gem 'sqlite3-ruby', :require => 'sqlite3'
7
- gem 'carrierwave'
8
- gem 'mini_magick'
9
- gem 'rest-client'
10
- gem 'rspec','~> 2.6.0'
11
- gem 'mocha','0.10.0'
12
- end
data/Gemfile.lock DELETED
@@ -1,114 +0,0 @@
1
- GEM
2
- remote: http://ruby.taobao.org/
3
- specs:
4
- actionmailer (3.2.1)
5
- actionpack (= 3.2.1)
6
- mail (~> 2.4.0)
7
- actionpack (3.2.1)
8
- activemodel (= 3.2.1)
9
- activesupport (= 3.2.1)
10
- builder (~> 3.0.0)
11
- erubis (~> 2.7.0)
12
- journey (~> 1.0.1)
13
- rack (~> 1.4.0)
14
- rack-cache (~> 1.1)
15
- rack-test (~> 0.6.1)
16
- sprockets (~> 2.1.2)
17
- activemodel (3.2.1)
18
- activesupport (= 3.2.1)
19
- builder (~> 3.0.0)
20
- activerecord (3.2.1)
21
- activemodel (= 3.2.1)
22
- activesupport (= 3.2.1)
23
- arel (~> 3.0.0)
24
- tzinfo (~> 0.3.29)
25
- activeresource (3.2.1)
26
- activemodel (= 3.2.1)
27
- activesupport (= 3.2.1)
28
- activesupport (3.2.1)
29
- i18n (~> 0.6)
30
- multi_json (~> 1.0)
31
- arel (3.0.0)
32
- builder (3.0.0)
33
- carrierwave (0.5.8)
34
- activesupport (~> 3.0)
35
- diff-lcs (1.1.3)
36
- erubis (2.7.0)
37
- hike (1.2.1)
38
- i18n (0.6.0)
39
- journey (1.0.1)
40
- json (1.6.5)
41
- mail (2.4.1)
42
- i18n (>= 0.4.0)
43
- mime-types (~> 1.16)
44
- treetop (~> 1.4.8)
45
- metaclass (0.0.1)
46
- mime-types (1.17.2)
47
- mini_magick (3.4)
48
- subexec (~> 0.2.1)
49
- mocha (0.10.0)
50
- metaclass (~> 0.0.1)
51
- multi_json (1.0.4)
52
- polyglot (0.3.3)
53
- rack (1.4.1)
54
- rack-cache (1.1)
55
- rack (>= 0.4)
56
- rack-ssl (1.3.2)
57
- rack
58
- rack-test (0.6.1)
59
- rack (>= 1.0)
60
- rails (3.2.1)
61
- actionmailer (= 3.2.1)
62
- actionpack (= 3.2.1)
63
- activerecord (= 3.2.1)
64
- activeresource (= 3.2.1)
65
- activesupport (= 3.2.1)
66
- bundler (~> 1.0)
67
- railties (= 3.2.1)
68
- railties (3.2.1)
69
- actionpack (= 3.2.1)
70
- activesupport (= 3.2.1)
71
- rack-ssl (~> 1.3.2)
72
- rake (>= 0.8.7)
73
- rdoc (~> 3.4)
74
- thor (~> 0.14.6)
75
- rake (0.9.2.2)
76
- rdoc (3.12)
77
- json (~> 1.4)
78
- rest-client (1.6.7)
79
- mime-types (>= 1.16)
80
- rspec (2.6.0)
81
- rspec-core (~> 2.6.0)
82
- rspec-expectations (~> 2.6.0)
83
- rspec-mocks (~> 2.6.0)
84
- rspec-core (2.6.4)
85
- rspec-expectations (2.6.0)
86
- diff-lcs (~> 1.1.2)
87
- rspec-mocks (2.6.0)
88
- sprockets (2.1.2)
89
- hike (~> 1.2)
90
- rack (~> 1.0)
91
- tilt (~> 1.1, != 1.3.0)
92
- sqlite3 (1.3.5)
93
- sqlite3-ruby (1.3.3)
94
- sqlite3 (>= 1.3.3)
95
- subexec (0.2.1)
96
- thor (0.14.6)
97
- tilt (1.3.3)
98
- treetop (1.4.10)
99
- polyglot
100
- polyglot (>= 0.3.1)
101
- tzinfo (0.3.31)
102
-
103
- PLATFORMS
104
- ruby
105
-
106
- DEPENDENCIES
107
- carrierwave
108
- mini_magick
109
- mocha (= 0.10.0)
110
- rails
111
- rake
112
- rest-client
113
- rspec (~> 2.6.0)
114
- sqlite3-ruby
@@ -1,20 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.push File.expand_path("../lib", __FILE__)
3
-
4
- Gem::Specification.new do |s|
5
- s.name = "carrierwave-aliyun-crud"
6
- s.version = "0.1.0"
7
- s.platform = Gem::Platform::RUBY
8
- s.authors = ["Jiang Peng"]
9
- s.email = ["pengj0520@gmail.com"]
10
- s.homepage = "https://github.com/warmwind/carrierwave-aliyun-crud"
11
- s.summary = %q{Aliyun OSS support for Carrierwave}
12
- s.description = %q{Aliyun OSS support for Carrierwave}
13
- s.files = `git ls-files`.split("\n")
14
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
15
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
16
- s.require_paths = ["lib"]
17
-
18
- s.add_dependency "carrierwave", [">= 0.5.7"]
19
- s.add_dependency "rest-client", [">= 1.6.7"]
20
- end
data/spec/foo.gif DELETED
Binary file
data/spec/foo.jpg DELETED
Binary file
data/spec/foo.zip DELETED
Binary file
data/spec/spec_helper.rb DELETED
@@ -1,37 +0,0 @@
1
- require 'rubygems'
2
- require 'rspec'
3
- require 'rspec/autorun'
4
- require 'rails'
5
- require 'active_record'
6
- require "carrierwave"
7
- require 'carrierwave/orm/activerecord'
8
- require 'carrierwave/processing/mini_magick'
9
-
10
- $LOAD_PATH.unshift(File.dirname(__FILE__))
11
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
12
-
13
- require "carrierwave-aliyun-crud"
14
-
15
-
16
- module Rails
17
- class <<self
18
- def root
19
- [File.expand_path(__FILE__).split('/')[0..-3].join('/'),"spec"].join("/")
20
- end
21
- end
22
- end
23
-
24
- ActiveRecord::Migration.verbose = false
25
-
26
- # 测试的时候需要修改这个地方
27
- CarrierWave.configure do |config|
28
- config.storage = :aliyun
29
- config.aliyun_access_id = "n4R7XBeTZqd2blQz"
30
- config.aliyun_access_key = 'WiMTt42rLMT9bPGfGaEaNlzHahG9du'
31
- config.aliyun_bucket = "carrierwave-jp"
32
- config.aliyun_internal = false
33
- end
34
-
35
- def load_file(fname)
36
- File.open([Rails.root,fname].join("/"))
37
- end
data/spec/upload_spec.rb DELETED
@@ -1,112 +0,0 @@
1
- require File.dirname(__FILE__) + '/spec_helper'
2
-
3
- require "open-uri"
4
- ActiveRecord::Base.establish_connection(:adapter => 'sqlite3', :database => ':memory:')
5
-
6
- describe "Upload" do
7
- def setup_db
8
- ActiveRecord::Schema.define(:version => 1) do
9
- create_table :photos do |t|
10
- t.column :image, :string
11
- end
12
-
13
- create_table :attachments do |t|
14
- t.column :file, :string
15
- end
16
- end
17
- end
18
-
19
- def drop_db
20
- ActiveRecord::Base.connection.tables.each do |table|
21
- ActiveRecord::Base.connection.drop_table(table)
22
- end
23
- end
24
-
25
- class PhotoUploader < CarrierWave::Uploader::Base
26
- include CarrierWave::MiniMagick
27
-
28
- version :small do
29
- process :resize_to_fill => [120, 120]
30
- end
31
-
32
- def store_dir
33
- "photos"
34
- end
35
- end
36
-
37
- class AttachUploader < CarrierWave::Uploader::Base
38
- include CarrierWave::MiniMagick
39
-
40
- def store_dir
41
- "attachs"
42
- end
43
- end
44
-
45
- class Photo < ActiveRecord::Base
46
- mount_uploader :image, PhotoUploader
47
- end
48
-
49
- class Attachment < ActiveRecord::Base
50
- mount_uploader :file, AttachUploader
51
- end
52
-
53
-
54
- before :all do
55
- setup_db
56
- end
57
-
58
- after :all do
59
- drop_db
60
- end
61
-
62
- describe "Upload Image" do
63
- context "should upload image" do
64
- before(:all) do
65
- @file = load_file("foo.jpg")
66
- @file1 = load_file("foo.gif")
67
- @photo = Photo.new(:image => @file)
68
- @photo1 = Photo.new(:image => @file1)
69
- end
70
-
71
- it "should upload file" do
72
- @photo.save.should be_true
73
- @photo1.save.should be_true
74
- end
75
-
76
- it "should get uploaded file" do
77
- img = open(@photo.image.url)
78
- img.size.should == @file.size
79
- img1 = open(@photo1.image.url)
80
- img1.size.should == @file1.size
81
- end
82
-
83
- it "should get small version uploaded file" do
84
- open(@photo.image.small.url).should_not == nil
85
- open(@photo1.image.small.url).should_not == nil
86
- end
87
-
88
- it "should delete uploaded files" do
89
- @photo.remove_image!
90
- @photo.reload
91
- expect {open(@photo.image.url)}.to raise_error(OpenURI::HTTPError)
92
- end
93
- end
94
-
95
- context "should update zip" do
96
- before(:all) do
97
- @file = load_file("foo.zip")
98
- @attachment = Attachment.new(:file => @file)
99
- end
100
-
101
- it "should upload file" do
102
- @attachment.save.should be_true
103
- end
104
-
105
- it "should get uploaded file" do
106
- attach = open(@attachment.file.url)
107
- attach.size.should == @file.size
108
- end
109
-
110
- end
111
- end
112
- end