onlyoffice_s3_wrapper 0.2.0 → 0.6.0
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/lib/onlyoffice_s3_wrapper/version.rb +1 -1
- data/lib/onlyoffice_s3_wrapper.rb +29 -24
- metadata +54 -47
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '0387c48913943311c6867916f2eba83da8b2b7287296c05720cd5821981c8d57'
|
4
|
+
data.tar.gz: b91e7139df9e65ee2e97a92a9e3b056fcaa13960909f9eebe98863a4ffde5efa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f4a835463b30fcef808b8a99032c6dd52cf4dd35c6c35ef14668c793afa1f658bebe891540a18423ac2edf73f62854b7068abd4c2d6f3acf022c219f4894365b
|
7
|
+
data.tar.gz: 8b716333f0f3395dbc95eb1f21348e193c08a83ff7c96796c0497a1aaf1c34fd9e393cc7c44724ef4dba298daa78cd34001b74c0c8409ba3f40d6e464b7a1aa3
|
@@ -11,6 +11,9 @@ require 'onlyoffice_s3_wrapper/version'
|
|
11
11
|
module OnlyofficeS3Wrapper
|
12
12
|
# Class for working with amazon s3
|
13
13
|
class AmazonS3Wrapper
|
14
|
+
# @return [String] default content type for uploaded files
|
15
|
+
DEFAULT_CONTENT_TYPE = 'binary/octet-stream'
|
16
|
+
|
14
17
|
include PathHelper
|
15
18
|
attr_accessor :s3, :bucket, :download_folder
|
16
19
|
# [String] Amazon key
|
@@ -38,6 +41,16 @@ module OnlyofficeS3Wrapper
|
|
38
41
|
.reject { |file| folder?(file) }
|
39
42
|
end
|
40
43
|
|
44
|
+
# Get list of files from specific folder
|
45
|
+
# Will not use folder name as prefix, will always try to look at folder
|
46
|
+
# with exact specified name
|
47
|
+
# @param [String] folder to get files
|
48
|
+
# @return [Array<Object>] result set
|
49
|
+
def files_from_folder(folder = nil)
|
50
|
+
folder = "#{folder}/" unless folder.end_with?('/')
|
51
|
+
get_files_by_prefix(folder)
|
52
|
+
end
|
53
|
+
|
41
54
|
# param [String] prefix
|
42
55
|
# return [Array] of folder names with '/'
|
43
56
|
# in end and filenames with fullpath (started ad prefix)
|
@@ -93,11 +106,12 @@ module OnlyofficeS3Wrapper
|
|
93
106
|
# Upload file
|
94
107
|
# @param file_path [String] file to upload
|
95
108
|
# @param upload_folder [String] path to upload
|
109
|
+
# @param content_type [String] content type of file to upload
|
96
110
|
# @return [nil]
|
97
|
-
def upload_file(file_path, upload_folder)
|
111
|
+
def upload_file(file_path, upload_folder, content_type = DEFAULT_CONTENT_TYPE)
|
98
112
|
path = bucket_file_path(File.basename(file_path),
|
99
113
|
upload_folder)
|
100
|
-
@bucket.object(path).upload_file(file_path)
|
114
|
+
@bucket.object(path).upload_file(file_path, content_type: content_type)
|
101
115
|
end
|
102
116
|
|
103
117
|
# Make file public
|
@@ -119,9 +133,12 @@ module OnlyofficeS3Wrapper
|
|
119
133
|
# Upload file/folder and make public
|
120
134
|
# @param file_path [String] file to upload
|
121
135
|
# @param upload_folder [True, False] is this a folder
|
136
|
+
# @param content_type [String] content type of file to upload
|
122
137
|
# @return [String] public url
|
123
|
-
def upload_file_and_make_public(file_path,
|
124
|
-
|
138
|
+
def upload_file_and_make_public(file_path,
|
139
|
+
upload_folder = nil,
|
140
|
+
content_type = DEFAULT_CONTENT_TYPE)
|
141
|
+
upload_file(file_path, upload_folder, content_type)
|
125
142
|
make_public(bucket_file_path(File.basename(file_path), upload_folder))
|
126
143
|
@bucket.object(bucket_file_path(File.basename(file_path),
|
127
144
|
upload_folder)).public_url
|
@@ -136,27 +153,15 @@ module OnlyofficeS3Wrapper
|
|
136
153
|
end
|
137
154
|
|
138
155
|
# Get S3 key and S3 private key
|
139
|
-
# @param
|
140
|
-
# @return [
|
141
|
-
def read_keys(
|
142
|
-
|
143
|
-
|
144
|
-
@access_key_id = File.read("#{Dir.home}/.s3/key").strip &&
|
145
|
-
@secret_access_key = File.read("#{Dir.home}/.s3/private_key").strip
|
156
|
+
# @param key_location [String] Path to search for key files
|
157
|
+
# @return [nil]
|
158
|
+
def read_keys(key_location = "#{Dir.home}/.s3")
|
159
|
+
@access_key_id = File.read("#{key_location}/key").strip
|
160
|
+
@secret_access_key = File.read("#{key_location}/private_key").strip
|
146
161
|
rescue Errno::ENOENT
|
147
|
-
raise Errno::ENOENT, "No key or private key found in #{
|
148
|
-
"Please create files #{
|
149
|
-
"and #{
|
150
|
-
end
|
151
|
-
|
152
|
-
private
|
153
|
-
|
154
|
-
# Read keys from env variables
|
155
|
-
def read_env_keys
|
156
|
-
return false unless ENV['S3_KEY'] && ENV['S3_PRIVATE_KEY']
|
157
|
-
|
158
|
-
@access_key_id = ENV['S3_KEY']
|
159
|
-
@secret_access_key = ENV['S3_PRIVATE_KEY']
|
162
|
+
raise Errno::ENOENT, "No key or private key found in #{key_location} "\
|
163
|
+
"Please create files #{key_location}/key "\
|
164
|
+
"and #{key_location}/private_key"
|
160
165
|
end
|
161
166
|
end
|
162
167
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: onlyoffice_s3_wrapper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ONLYOFFICE
|
@@ -10,162 +10,168 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2021-12-22 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: aws-sdk-s3
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - "~>"
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 1
|
21
|
+
version: '1'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
|
-
- -
|
26
|
+
- - "~>"
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
version: 1
|
28
|
+
version: '1'
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: onlyoffice_file_helper
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
|
-
- -
|
33
|
+
- - "~>"
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version: 0
|
35
|
+
version: '0'
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
|
-
- -
|
40
|
+
- - "~>"
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: 0
|
42
|
+
version: '0'
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: overcommit
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
|
-
- -
|
47
|
+
- - "~>"
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version: 0
|
49
|
+
version: '0'
|
50
50
|
type: :development
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
|
-
- -
|
54
|
+
- - "~>"
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version: 0
|
56
|
+
version: '0'
|
57
57
|
- !ruby/object:Gem::Dependency
|
58
58
|
name: rake
|
59
59
|
requirement: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
|
-
- -
|
61
|
+
- - "~>"
|
62
62
|
- !ruby/object:Gem::Version
|
63
|
-
version: 13
|
63
|
+
version: '13'
|
64
64
|
type: :development
|
65
65
|
prerelease: false
|
66
66
|
version_requirements: !ruby/object:Gem::Requirement
|
67
67
|
requirements:
|
68
|
-
- -
|
68
|
+
- - "~>"
|
69
69
|
- !ruby/object:Gem::Version
|
70
|
-
version: 13
|
70
|
+
version: '13'
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
72
|
name: rspec
|
73
73
|
requirement: !ruby/object:Gem::Requirement
|
74
74
|
requirements:
|
75
|
-
- -
|
75
|
+
- - "~>"
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version: 3
|
77
|
+
version: '3'
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
80
|
version_requirements: !ruby/object:Gem::Requirement
|
81
81
|
requirements:
|
82
|
-
- -
|
82
|
+
- - "~>"
|
83
83
|
- !ruby/object:Gem::Version
|
84
|
-
version: 3
|
84
|
+
version: '3'
|
85
85
|
- !ruby/object:Gem::Dependency
|
86
86
|
name: rubocop
|
87
87
|
requirement: !ruby/object:Gem::Requirement
|
88
88
|
requirements:
|
89
|
-
- -
|
89
|
+
- - "~>"
|
90
90
|
- !ruby/object:Gem::Version
|
91
|
-
version:
|
91
|
+
version: '1'
|
92
92
|
type: :development
|
93
93
|
prerelease: false
|
94
94
|
version_requirements: !ruby/object:Gem::Requirement
|
95
95
|
requirements:
|
96
|
-
- -
|
96
|
+
- - "~>"
|
97
97
|
- !ruby/object:Gem::Version
|
98
|
-
version:
|
98
|
+
version: '1'
|
99
99
|
- !ruby/object:Gem::Dependency
|
100
100
|
name: rubocop-performance
|
101
101
|
requirement: !ruby/object:Gem::Requirement
|
102
102
|
requirements:
|
103
|
-
- -
|
103
|
+
- - "~>"
|
104
104
|
- !ruby/object:Gem::Version
|
105
|
-
version: 1
|
105
|
+
version: '1'
|
106
106
|
type: :development
|
107
107
|
prerelease: false
|
108
108
|
version_requirements: !ruby/object:Gem::Requirement
|
109
109
|
requirements:
|
110
|
-
- -
|
110
|
+
- - "~>"
|
111
111
|
- !ruby/object:Gem::Version
|
112
|
-
version: 1
|
112
|
+
version: '1'
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: rubocop-rake
|
115
115
|
requirement: !ruby/object:Gem::Requirement
|
116
116
|
requirements:
|
117
|
-
- -
|
117
|
+
- - "~>"
|
118
118
|
- !ruby/object:Gem::Version
|
119
|
-
version: 0
|
119
|
+
version: '0'
|
120
120
|
type: :development
|
121
121
|
prerelease: false
|
122
122
|
version_requirements: !ruby/object:Gem::Requirement
|
123
123
|
requirements:
|
124
|
-
- -
|
124
|
+
- - "~>"
|
125
125
|
- !ruby/object:Gem::Version
|
126
|
-
version: 0
|
126
|
+
version: '0'
|
127
127
|
- !ruby/object:Gem::Dependency
|
128
128
|
name: rubocop-rspec
|
129
129
|
requirement: !ruby/object:Gem::Requirement
|
130
130
|
requirements:
|
131
|
-
- -
|
131
|
+
- - "~>"
|
132
132
|
- !ruby/object:Gem::Version
|
133
|
-
version:
|
133
|
+
version: '2'
|
134
134
|
type: :development
|
135
135
|
prerelease: false
|
136
136
|
version_requirements: !ruby/object:Gem::Requirement
|
137
137
|
requirements:
|
138
|
-
- -
|
138
|
+
- - "~>"
|
139
139
|
- !ruby/object:Gem::Version
|
140
|
-
version:
|
140
|
+
version: '2'
|
141
141
|
- !ruby/object:Gem::Dependency
|
142
142
|
name: simplecov
|
143
143
|
requirement: !ruby/object:Gem::Requirement
|
144
144
|
requirements:
|
145
|
-
- -
|
145
|
+
- - "~>"
|
146
146
|
- !ruby/object:Gem::Version
|
147
|
-
version: 0
|
147
|
+
version: '0'
|
148
148
|
type: :development
|
149
149
|
prerelease: false
|
150
150
|
version_requirements: !ruby/object:Gem::Requirement
|
151
151
|
requirements:
|
152
|
-
- -
|
152
|
+
- - "~>"
|
153
153
|
- !ruby/object:Gem::Version
|
154
|
-
version: 0
|
154
|
+
version: '0'
|
155
155
|
- !ruby/object:Gem::Dependency
|
156
156
|
name: yard
|
157
157
|
requirement: !ruby/object:Gem::Requirement
|
158
158
|
requirements:
|
159
|
-
- -
|
159
|
+
- - "~>"
|
160
160
|
- !ruby/object:Gem::Version
|
161
|
-
version: 0
|
161
|
+
version: '0'
|
162
|
+
- - ">="
|
163
|
+
- !ruby/object:Gem::Version
|
164
|
+
version: 0.9.20
|
162
165
|
type: :development
|
163
166
|
prerelease: false
|
164
167
|
version_requirements: !ruby/object:Gem::Requirement
|
165
168
|
requirements:
|
166
|
-
- -
|
169
|
+
- - "~>"
|
170
|
+
- !ruby/object:Gem::Version
|
171
|
+
version: '0'
|
172
|
+
- - ">="
|
167
173
|
- !ruby/object:Gem::Version
|
168
|
-
version: 0.9.
|
174
|
+
version: 0.9.20
|
169
175
|
description: ONLYOFFICE Helper Gem for S3. Used in QA
|
170
176
|
email:
|
171
177
|
- shockwavenn@gmail.com
|
@@ -187,6 +193,7 @@ metadata:
|
|
187
193
|
documentation_uri: https://www.rubydoc.info/gems/onlyoffice_s3_wrapper
|
188
194
|
homepage_uri: https://github.com/ONLYOFFICE-QA/onlyoffice_s3_wrapper
|
189
195
|
source_code_uri: https://github.com/ONLYOFFICE-QA/onlyoffice_s3_wrapper
|
196
|
+
rubygems_mfa_required: 'true'
|
190
197
|
post_install_message:
|
191
198
|
rdoc_options: []
|
192
199
|
require_paths:
|
@@ -202,7 +209,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
202
209
|
- !ruby/object:Gem::Version
|
203
210
|
version: '0'
|
204
211
|
requirements: []
|
205
|
-
rubygems_version: 3.
|
212
|
+
rubygems_version: 3.2.32
|
206
213
|
signing_key:
|
207
214
|
specification_version: 4
|
208
215
|
summary: ONLYOFFICE Helper Gem for S3
|