s3cache 0.9.1 → 0.9.2
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 +4 -4
- data/lib/s3cache.rb +12 -10
- metadata +2 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 240e7d859e3d0f43d52b84ca4baa761176c5c1c8
|
4
|
+
data.tar.gz: 57b3aab0d8752994780cc2f124e4e56cf3a4ac6a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ca3aa5a3c7105ef2ae88c841a1dc6a065fc7600261a069f095b0c046915cb0b9716e4b74e277bb1189a7a2e3b837c175e8100b995584d01b805807c03ef1fd70
|
7
|
+
data.tar.gz: ad54c92fd21df4cb149efb62d0907be549bdfc42bd265434cf1ad2c262d3d157fe0b1704734cc2e25da6d1a4ec2c080348970b96c7c0eeb64cfd5f974dc7a12c
|
data/lib/s3cache.rb
CHANGED
@@ -5,24 +5,25 @@ require 'yaml'
|
|
5
5
|
|
6
6
|
class S3Cache
|
7
7
|
|
8
|
-
VERSION = "0.9.
|
8
|
+
VERSION = "0.9.2"
|
9
9
|
|
10
10
|
def initialize(**params)
|
11
11
|
|
12
|
+
@logger = Rails.logger ? Rails.logger : Logger.new(STDOUT)
|
13
|
+
|
12
14
|
if not params.to_h[:bucket_name]
|
13
|
-
|
15
|
+
@logger.info{ "requires {:bucket_name => String, (optional) :expires => Integer}" }
|
14
16
|
end
|
15
17
|
|
16
18
|
@bucket_name = params.to_h[:bucket_name]
|
17
19
|
@expires = params.to_h[:expires] ? params.to_h[:expires] : 32.days
|
18
|
-
@debug = params.to_h[:debug] ? params.to_h[:debug] : false
|
19
20
|
|
20
21
|
if ENV['AWS_ACCESS_KEY_ID'].nil? || ENV['AWS_SECRET_ACCESS_KEY'].nil?
|
21
22
|
puts 'Enviroment variables AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY must be defined. Learn more http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html#config-settings-and-precedence'
|
22
23
|
else
|
23
24
|
@s3 = Aws::S3::Client.new
|
24
25
|
if not bucket_exist?
|
25
|
-
|
26
|
+
@logger.debug( "creating bucket #{@bucket_name}" )
|
26
27
|
bucket_create
|
27
28
|
end
|
28
29
|
end
|
@@ -30,7 +31,7 @@ class S3Cache
|
|
30
31
|
|
31
32
|
def read(key, **params)
|
32
33
|
key_name = cache_key( key )
|
33
|
-
|
34
|
+
@logger.debug( "read #{key_name}" )
|
34
35
|
if exist?(key_name)
|
35
36
|
Marshal.load(@s3.get_object({ bucket: @bucket_name, key: key_name }).body.read)
|
36
37
|
else
|
@@ -40,7 +41,7 @@ class S3Cache
|
|
40
41
|
|
41
42
|
def write(key, contents, **params)
|
42
43
|
key_name = cache_key( key )
|
43
|
-
|
44
|
+
@logger.debug( "write #{key_name}" )
|
44
45
|
@s3.put_object({
|
45
46
|
bucket: @bucket_name,
|
46
47
|
key: key_name,
|
@@ -53,10 +54,10 @@ class S3Cache
|
|
53
54
|
key_name = cache_key( key )
|
54
55
|
|
55
56
|
if(exist?(key_name) )
|
56
|
-
|
57
|
+
@logger.debug( "fetch->read #{key_name}" )
|
57
58
|
read (key_name)
|
58
59
|
else
|
59
|
-
|
60
|
+
@logger.debug( "fetch->write #{key_name}" )
|
60
61
|
value = yield
|
61
62
|
write(key_name, value)
|
62
63
|
read (key_name)
|
@@ -70,13 +71,14 @@ class S3Cache
|
|
70
71
|
rescue
|
71
72
|
response = nil
|
72
73
|
end
|
73
|
-
|
74
|
+
|
75
|
+
@logger.debug( "exists? #{!response.nil?} #{key_name}" )
|
74
76
|
return !response.nil?
|
75
77
|
end
|
76
78
|
|
77
79
|
def clear
|
78
80
|
cache_keys.each do |key|
|
79
|
-
|
81
|
+
@logger.debug( "deleting key #{key}" )
|
80
82
|
@s3.delete_object({:bucket => @bucket_name, :key => key})
|
81
83
|
end
|
82
84
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: s3cache
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eddie A Tejeda
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-03-
|
11
|
+
date: 2016-03-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -94,4 +94,3 @@ specification_version: 4
|
|
94
94
|
summary: A simple caching library that serializes objects to the filesystem and is
|
95
95
|
compatible with the Rails.cache API
|
96
96
|
test_files: []
|
97
|
-
has_rdoc:
|