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