activestorage-backblaze 0.0.2 → 0.0.3

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: 7ff34f6817811c7c5a5ba2d6359abac0656b65bf4459789a2f8bc2b591001390
4
- data.tar.gz: 0c8d67337f243f0041f6cea125d1a1fb38008dee268cb72c2403cfb5525ac2c0
3
+ metadata.gz: 7d7c0eb8bb1cab9146cb415bf6b16357b7816fdbe32821c8fffda0281d2fbc5b
4
+ data.tar.gz: 62b0ce9a3a4bb6816f9ba49b69ef6192c6c2d90043ffc5c1ae1d5aff5b18f08c
5
5
  SHA512:
6
- metadata.gz: 93bf15ce62934948ea9f6dcd6bd47e3b311b945e33760319d9927ed55e030c58a84f67b90c7244ba13f382aac1bbba37a484e880c2d2272247ae27ca1d48b5cd
7
- data.tar.gz: 470955c6a0b11862e79c1892dbf71333cc2cf51df3611ce98255e5cfca4db29c7685c6a31d39079ae9eab943665e39d88dd0e0e4e7142a26051ce3fb40ca584e
6
+ metadata.gz: ec5fe0d075775943a5dc676fe01cbe98e56dbd4cba2deecc085309ea61aee60bca05790aacd35521cf5877d1c430f57bd5ebf32a00057c3f4f7cb55c2d80c4e1
7
+ data.tar.gz: 27d5a9803fdd4d3ab3422e06613913a9c0de3983343dc0995d3c3bea78618cf721344dcee8648d60e4b5b6d04720a5dc26dc8906b8b5af9749de56142753da47
@@ -0,0 +1,79 @@
1
+ require "fog/backblaze"
2
+
3
+ class ActiveStorage::Service::BackblazeService < ActiveStorage::Service
4
+ def initialize(key_id:, key_token:, bucket_name:, bucket_id:)
5
+ @key_id = key_id
6
+ @key_token = key_token
7
+ @bucket_name = bucket_name
8
+ @bucket_id = bucket_id
9
+ @connection = Fog::Storage.new(
10
+ provider: 'backblaze',
11
+ b2_key_id: @key_id,
12
+ b2_key_token: @key_token,
13
+ b2_bucket_name: @bucket_name,
14
+ b2_bucket_id: @bucket_id,
15
+ logger: Logger.new(STDOUT)
16
+ )
17
+ end
18
+
19
+ def upload(key, io, checksum: nil, **options)
20
+ instrument :upload, { key: key, checksum: checksum } do
21
+ begin
22
+ @connection.put_object(@bucket_name, key, io)
23
+ rescue => e
24
+ raise ActiveStorage::IntegrityError
25
+ end
26
+ end
27
+ end
28
+
29
+ def download(key)
30
+ instrument :download, { key: key } do
31
+ io = @connection.get_object(@bucket_name, key)
32
+ end
33
+ end
34
+
35
+ def delete(key)
36
+ instrument :delete, { key: key } do
37
+ begin
38
+ @connection.delete_object(@bucket_name, key)
39
+ rescue => e
40
+ false
41
+ end
42
+ end
43
+ end
44
+
45
+ def delete_prefixed(prefix)
46
+ delete(prefix)
47
+ end
48
+
49
+ def exist?(key)
50
+ instrument :exist, { key: key } do |payload|
51
+ answer = false
52
+ begin
53
+ @connection.head_object(@bucket_name, key)
54
+ answer = true
55
+ rescue => e
56
+ end
57
+ payload[:exist] = answer
58
+ answer
59
+ end
60
+ end
61
+
62
+ def url(key, expires_in:, disposition:, filename:, **options)
63
+ instrument :url, {key: key} do |payload|
64
+ url = @connection.get_public_object_url(@bucket_name, key)
65
+ payload[:url] = url
66
+
67
+ url
68
+ end
69
+ end
70
+
71
+ def url_for_direct_upload(key, expires_in:, content_type:, content_length:, checksum:)
72
+ raise NotImpletementedError
73
+ end
74
+
75
+ def headers_for_direct_upload(key, content_type:, checksum:, **)
76
+ raise NotImpletementedError
77
+ end
78
+
79
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activestorage-backblaze
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jey
@@ -30,6 +30,7 @@ executables: []
30
30
  extensions: []
31
31
  extra_rdoc_files: []
32
32
  files:
33
+ - lib/active_storage/service/backblaze_service.rb
33
34
  - lib/active_storage_backblaze.rb
34
35
  homepage: https://github.com/gten/activestorage-backblaze
35
36
  licenses: []