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 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