onlyoffice_s3_wrapper 0.2.0 → 0.6.0

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
  SHA256:
3
- metadata.gz: a6147e29e1e324812b01f9748f18a4aa66f1e391d8888acd2c2a8e49a28076db
4
- data.tar.gz: f343cc5ca7cbc42e9412f2f127a05fc39ed9cdcbd31f9a1dd1eeb9820350c8f3
3
+ metadata.gz: '0387c48913943311c6867916f2eba83da8b2b7287296c05720cd5821981c8d57'
4
+ data.tar.gz: b91e7139df9e65ee2e97a92a9e3b056fcaa13960909f9eebe98863a4ffde5efa
5
5
  SHA512:
6
- metadata.gz: 627aa9ab9034ba2253555da52a7409edc0d521cbca545c8e11a7d0406dafe56e272d82da004712690b33856c95668280fbb2738e4f81c48dd2b5e4e4d83b9a8e
7
- data.tar.gz: a297f145abe4a37aeb26bd7d48973793015e24e175979961ccb0313372ccf602e8d0085d3ccebca35fd983644cc86bdc274cce32fddbba582db6d422d5b0f94c
6
+ metadata.gz: f4a835463b30fcef808b8a99032c6dd52cf4dd35c6c35ef14668c793afa1f658bebe891540a18423ac2edf73f62854b7068abd4c2d6f3acf022c219f4894365b
7
+ data.tar.gz: 8b716333f0f3395dbc95eb1f21348e193c08a83ff7c96796c0497a1aaf1c34fd9e393cc7c44724ef4dba298daa78cd34001b74c0c8409ba3f40d6e464b7a1aa3
@@ -2,5 +2,5 @@
2
2
 
3
3
  module OnlyofficeS3Wrapper
4
4
  # [String] Version of gem
5
- VERSION = '0.2.0'
5
+ VERSION = '0.6.0'
6
6
  end
@@ -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, upload_folder = nil)
124
- upload_file(file_path, upload_folder)
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 force_file_read [True, False] force key read from file
140
- # @return [Array <String>] list of keys
141
- def read_keys(force_file_read: false)
142
- return if read_env_keys && !force_file_read
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 #{Dir.home}/.s3/ "\
148
- "Please create files #{Dir.home}/.s3/key "\
149
- "and #{Dir.home}/.s3/private_key"
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.2.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: 2020-09-10 00:00:00.000000000 Z
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.79.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.79.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.3.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.3.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.55.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.55.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.0.1
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.0.1
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.9.0
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.9.0
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: 0.90.0
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: 0.90.0
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.8.0
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.8.0
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.5.1
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.5.1
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: 1.43.2
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: 1.43.2
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.19.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.19.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.9.25
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.25
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.1.4
212
+ rubygems_version: 3.2.32
206
213
  signing_key:
207
214
  specification_version: 4
208
215
  summary: ONLYOFFICE Helper Gem for S3