activestorage-backblaze 0.0.2 → 0.0.3

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: 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: []