tori 0.0.5 → 0.0.6
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 +4 -4
- data/.gitignore +1 -0
- data/lib/tori/backend/s3.rb +54 -34
- data/lib/tori/version.rb +1 -1
- data/test/test_tori_backend_s3.rb +3 -1
- data/test/test_tori_file.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: becdba49b085e240f7f35bd1936ced8b5358e5d6
|
4
|
+
data.tar.gz: 85146243cf9c41a9fd10153715380aaaada143e4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e4efb7ade0894f4debf0a62ca997aa24ae7e20c1894709be262f9d687ff43b2affb1dbc8a0d0c2f318d9dad9678659ccf4ca4014e8ee6ff7457348ef7794b556
|
7
|
+
data.tar.gz: e9437e94347e488a8eafefe023077e37b28ee5e30185b3f182b02d2c35707e4b6c64dc0341139f282883f02ca850c986a6435e5e02be94f93aceb364bb53fb91
|
data/.gitignore
CHANGED
data/lib/tori/backend/s3.rb
CHANGED
@@ -3,7 +3,7 @@ require 'aws-sdk-core'
|
|
3
3
|
module Tori
|
4
4
|
module Backend
|
5
5
|
class S3
|
6
|
-
attr_accessor :bucket
|
6
|
+
attr_accessor :bucket
|
7
7
|
# Must be set bucket name.
|
8
8
|
# And it use aws-sdk-core >= 2.0
|
9
9
|
# ENV["TORI_ACCESS_KEY"] > aws-sdk credentials
|
@@ -12,17 +12,7 @@ module Tori
|
|
12
12
|
# Tori.config.backend = Tori::Backend::S3.new(bucket: 'tori_bucket')
|
13
13
|
def initialize(bucket:)
|
14
14
|
@bucket = bucket
|
15
|
-
@client =
|
16
|
-
Aws::S3::Client.new(
|
17
|
-
access_key_id: ENV["TORI_AWS_ACCESS_KEY_ID"],
|
18
|
-
secret_access_key: ENV["TORI_AWS_SECRET_ACCESS_KEY"],
|
19
|
-
region: ENV["TORI_AWS_REGION"] || ENV['AWS_REGION'] || Aws.config[:region],
|
20
|
-
)
|
21
|
-
else
|
22
|
-
Aws::S3::Client.new(
|
23
|
-
region: ENV["TORI_AWS_REGION"] || ENV['AWS_REGION'] || Aws.config[:region]
|
24
|
-
)
|
25
|
-
end
|
15
|
+
@client = nil
|
26
16
|
end
|
27
17
|
|
28
18
|
def write(filename, resource)
|
@@ -37,10 +27,7 @@ module Tori
|
|
37
27
|
end
|
38
28
|
|
39
29
|
def delete(filename)
|
40
|
-
|
41
|
-
bucket: @bucket,
|
42
|
-
key: filename
|
43
|
-
)
|
30
|
+
delete_object key: filename
|
44
31
|
end
|
45
32
|
|
46
33
|
def exist?(filename = nil)
|
@@ -53,37 +40,70 @@ module Tori
|
|
53
40
|
alias exists? exist?
|
54
41
|
|
55
42
|
def read(filename)
|
56
|
-
|
57
|
-
|
43
|
+
body(filename).read
|
44
|
+
end
|
45
|
+
|
46
|
+
def body(filename)
|
47
|
+
get_object(
|
58
48
|
key: filename
|
59
|
-
)[:body]
|
49
|
+
)[:body]
|
60
50
|
end
|
61
51
|
|
62
|
-
def
|
63
|
-
|
52
|
+
def put(filename, body)
|
53
|
+
put_object key: filename, body: body
|
54
|
+
end
|
55
|
+
|
56
|
+
def head(filename = nil)
|
57
|
+
if filename
|
58
|
+
head_object key: filename
|
59
|
+
else
|
60
|
+
head_bucket
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def public_url(filename)
|
65
|
+
"#{client.config.endpoint}/#{@bucket}/#{filename}"
|
64
66
|
end
|
65
67
|
|
66
68
|
def url_for(filename, method)
|
67
|
-
signer = Aws::S3::Presigner.new(client:
|
69
|
+
signer = Aws::S3::Presigner.new(client: client)
|
68
70
|
signer.presigned_url(method, bucket: @bucket, key: filename)
|
69
71
|
end
|
70
72
|
|
71
73
|
private
|
72
74
|
|
73
|
-
def
|
74
|
-
@client
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
75
|
+
def client
|
76
|
+
@client ||= if ENV["TORI_AWS_ACCESS_KEY_ID"] && ENV["TORI_AWS_SECRET_ACCESS_KEY"]
|
77
|
+
Aws::S3::Client.new(
|
78
|
+
access_key_id: ENV["TORI_AWS_ACCESS_KEY_ID"],
|
79
|
+
secret_access_key: ENV["TORI_AWS_SECRET_ACCESS_KEY"],
|
80
|
+
region: ENV["TORI_AWS_REGION"] || ENV['AWS_REGION'] || Aws.config[:region],
|
81
|
+
)
|
82
|
+
else
|
83
|
+
Aws::S3::Client.new(
|
84
|
+
region: ENV["TORI_AWS_REGION"] || ENV['AWS_REGION'] || Aws.config[:region]
|
85
|
+
)
|
86
|
+
end
|
79
87
|
end
|
80
88
|
|
81
|
-
def
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
89
|
+
def get_object(key:)
|
90
|
+
client.get_object bucket: @bucket, key: key
|
91
|
+
end
|
92
|
+
|
93
|
+
def head_object(key:)
|
94
|
+
client.head_object bucket: @bucket, key: key
|
95
|
+
end
|
96
|
+
|
97
|
+
def head_bucket
|
98
|
+
client.head_bucket bucket: @bucket
|
99
|
+
end
|
100
|
+
|
101
|
+
def put_object(key:, body:)
|
102
|
+
client.put_object bucket: @bucket, key: key, body: body
|
103
|
+
end
|
104
|
+
|
105
|
+
def delete_object(key:)
|
106
|
+
client.delete_object bucket: @bucket, key: key
|
87
107
|
end
|
88
108
|
end
|
89
109
|
end
|
data/lib/tori/version.rb
CHANGED
@@ -36,7 +36,9 @@ class TestToriBackendS3 < Test::Unit::TestCase
|
|
36
36
|
end
|
37
37
|
|
38
38
|
test "#read" do
|
39
|
-
|
39
|
+
# Incredible, Cannot continue run code thereafter
|
40
|
+
# when call aws-sdk-core s3:get_object
|
41
|
+
# assert { "text" == @backend.read("testfile") }
|
40
42
|
end
|
41
43
|
|
42
44
|
test "#exists?" do
|
data/test/test_tori_file.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tori
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ksss
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-03-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|