porky_lib 0.4.3 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +2 -2
- data/lib/porky_lib/file_service.rb +34 -0
- data/lib/porky_lib/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 432dc6ecb196114054009e60eac2e2b4e9b18f53ee062812bbb927113fa30583
|
4
|
+
data.tar.gz: 82a144aa021e7a12c91114195dce667108edfc3267e0d057f7cb3452d30c6659
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 237625a806768a1c457f2839c687a4d58f78603cb9e521b7a5f27178c72e51f4a479be072f3da2720e8857f30bed75e835bca8eb0ba5460348c8c0ccb9e777ff
|
7
|
+
data.tar.gz: 1fe605141971e97557ca04cafc85ba71d641480bd1f0033252d47264a57a5223c2ba81c4b75439dadc7e3db9fae945b1893f0b8568f7b7d8b7964c863e85fcc9
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
porky_lib (0.
|
4
|
+
porky_lib (0.5.0)
|
5
5
|
aws-sdk-kms
|
6
6
|
aws-sdk-s3
|
7
7
|
msgpack
|
@@ -41,7 +41,7 @@ GEM
|
|
41
41
|
jaro_winkler (1.5.2)
|
42
42
|
jmespath (1.4.0)
|
43
43
|
json (2.2.0)
|
44
|
-
msgpack (1.2.
|
44
|
+
msgpack (1.2.9)
|
45
45
|
parallel (1.14.0)
|
46
46
|
parser (2.6.0.0)
|
47
47
|
ast (~> 2.4.0)
|
@@ -9,6 +9,36 @@ class PorkyLib::FileService
|
|
9
9
|
class FileServiceError < StandardError; end
|
10
10
|
class FileSizeTooLargeError < StandardError; end
|
11
11
|
|
12
|
+
def read_file_info(bucket_name, file_key)
|
13
|
+
s3_client.head_object(
|
14
|
+
bucket: bucket_name,
|
15
|
+
key: file_key
|
16
|
+
).to_h
|
17
|
+
rescue Aws::Errors::ServiceError => e
|
18
|
+
raise FileServiceError, "File info read for #{file_key} in S3 bucket #{bucket_name} failed: #{e.message}"
|
19
|
+
end
|
20
|
+
|
21
|
+
def copy_file(source_bucket, destination_bucket, file_key)
|
22
|
+
s3_client.copy_object(
|
23
|
+
bucket: destination_bucket,
|
24
|
+
copy_source: "#{source_bucket}/#{file_key}",
|
25
|
+
key: file_key
|
26
|
+
)
|
27
|
+
|
28
|
+
file_key
|
29
|
+
rescue Aws::Errors::ServiceError => e
|
30
|
+
raise FileServiceError, "File move #{file_key} from S3 bucket #{source_bucket} to #{destination_bucket} failed: #{e.message}"
|
31
|
+
end
|
32
|
+
|
33
|
+
def delete_file(bucket_name, file_key)
|
34
|
+
s3_client.delete_object(
|
35
|
+
bucket: bucket_name,
|
36
|
+
key: file_key
|
37
|
+
)
|
38
|
+
rescue Aws::Errors::ServiceError => e
|
39
|
+
raise FileServiceError, "File delete of #{file_key} from S3 bucket #{bucket_name} failed: #{e.message}"
|
40
|
+
end
|
41
|
+
|
12
42
|
def read(bucket_name, file_key, options = {})
|
13
43
|
tempfile = Tempfile.new
|
14
44
|
|
@@ -141,6 +171,10 @@ class PorkyLib::FileService
|
|
141
171
|
tempfile
|
142
172
|
end
|
143
173
|
|
174
|
+
def s3_client
|
175
|
+
@s3_client ||= Aws::S3::Client.new
|
176
|
+
end
|
177
|
+
|
144
178
|
def s3
|
145
179
|
@s3 ||= Aws::S3::Resource.new
|
146
180
|
end
|
data/lib/porky_lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: porky_lib
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Greg Fletcher
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-03-
|
11
|
+
date: 2019-03-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk-kms
|