porky_lib 0.4.3 → 0.5.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: 1d57893cb03d3f256b013293c84c2a5a2a03094c1e1f750bfb9a348a307cafe8
4
- data.tar.gz: 7da8c3b0e645c8e15de54963c9f9295b54c830e7034f247fad4457c13e8b365c
3
+ metadata.gz: 432dc6ecb196114054009e60eac2e2b4e9b18f53ee062812bbb927113fa30583
4
+ data.tar.gz: 82a144aa021e7a12c91114195dce667108edfc3267e0d057f7cb3452d30c6659
5
5
  SHA512:
6
- metadata.gz: f6414e522ed59f61adf243a9c7da27527fe820f3c4aec00e02685446d5865b9c687d65d1e9b190db2562d8e2d4765294f4b29f0ec40fce8c56df0a40504aa99c
7
- data.tar.gz: 38f6be6d237ab9de546f9ff36f9b6214f1712a7cf4e05a5ac14229db6c10371cfa2a76f4a209ee7075814b951f838500f650e3fff2f9cd5402fb164337a232ab
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.3)
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.8)
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PorkyLib
4
- VERSION = "0.4.3"
4
+ VERSION = "0.5.0"
5
5
  end
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.3
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 00:00:00.000000000 Z
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