fluent-plugin-gcs 0.4.0 → 0.4.1

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: 71d25a32c7d9c75cae25cd1b7edeab585b94b520013705ba2b644abdd764cd88
4
- data.tar.gz: 7417015c833ff80f52c3161e36aefbbacf3c42cc00ee4a96bdc0562994d7b4b7
3
+ metadata.gz: 85b1b9b0ed8cd2b264dacc7f54fb1bf9e15b2f1e6f28871b17e0bb7e844e1669
4
+ data.tar.gz: a90fec1f3d5509be2df1a72d2479e9db6ba7f133ad67c60789abbdbb1360e519
5
5
  SHA512:
6
- metadata.gz: 7fa80c353436e2983fbbdbaa85f4a9abe7022dfe3ec0c15a0cb2d4bf8791c5cf8c19e5b2d16466040840e3d21419a94510e635473a8a0d1240eb7a52f37fd7df
7
- data.tar.gz: 28a514a41b1d18757e5da7982ec977a33b1f17bae2f0c924d7556e12ed4abe018fe1c86282217b40a82df0a08b8f65503a0b931402e5c549f658dc8188636a6b
6
+ metadata.gz: 8bcb9225215a56ea5ad0d34ac2447e0b39074ae9269e885c2ac70ba2679213340653b47941ea2c5c395861535fd565ae81a6e153e48adef175cf6966b1849a20
7
+ data.tar.gz: dfe13e0a8ea31f3d80d1174aa4c35385cf6206820d5574f31d501767e972b144f646a48711e64c63b10261045385aed4af9a2e7516aeeac0f6aa460cb37cf807
@@ -1,9 +1,8 @@
1
1
  language: ruby
2
2
 
3
3
  rvm:
4
- - 2.4
5
- - 2.5
6
4
  - 2.6
5
+ - 2.7
7
6
  - ruby-head
8
7
 
9
8
  before_install:
@@ -2,6 +2,11 @@
2
2
 
3
3
  New features / Enhancements
4
4
 
5
+ ## [0.4.1] - 2020/04/17
6
+
7
+ New features
8
+ - [Support blind write to GSC](https://github.com/daichirata/fluent-plugin-gcs/pull/14)
9
+
5
10
  ## [0.4.0] - 2019/04/01
6
11
 
7
12
  New features / Enhancements
data/README.md CHANGED
@@ -225,9 +225,18 @@ Use Local time instead of UTC.
225
225
 
226
226
  Use UTC instead of local time.
227
227
 
228
-
229
228
  And see [official Time Sliced Output article](http://docs.fluentd.org/articles/output-plugin-overview#time-sliced-output-parameters)
230
229
 
230
+ **blind_write**
231
+
232
+ Doesn't check if an object exists in GCS before writing. Default is false.
233
+
234
+ Allows to avoid granting of `storage.objects.get` permission.
235
+
236
+ Warning! If the object exists and `storage.objects.delete` permission is not
237
+ granted, it will result in an unrecoverable error. Usage of `%{hex_random}` is
238
+ recommended.
239
+
231
240
  ### ObjectMetadata
232
241
 
233
242
  User provided web-safe keys and arbitrary string values that will returned with requests for the file as "x-goog-meta-" response headers.
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
23
23
  spec.add_runtime_dependency "fluentd", [">= 0.14.22", "< 2"]
24
24
  spec.add_runtime_dependency "google-cloud-storage", "~> 1.1"
25
25
 
26
- spec.add_development_dependency "rake", "~> 10.0"
26
+ spec.add_development_dependency "rake", ">= 12.3.3"
27
27
  spec.add_development_dependency "rr", "= 1.1.2"
28
28
  spec.add_development_dependency "test-unit", ">= 3.0.8"
29
29
  spec.add_development_dependency "test-unit-rr", ">= 1.0.3"
@@ -1,5 +1,5 @@
1
1
  module Fluent
2
2
  module GCSPlugin
3
- VERSION = "0.4.0"
3
+ VERSION = "0.4.1"
4
4
  end
5
5
  end
@@ -49,6 +49,8 @@ module Fluent::Plugin
49
49
  desc: "Storage class of the file"
50
50
  config_param :encryption_key, :string, default: nil, secret: true,
51
51
  desc: "Customer-supplied, AES-256 encryption key"
52
+ config_param :blind_write, :bool, default: false,
53
+ desc: "Whether to check if object already exists by given GCS path. Allows avoiding giving storage.object.get permission"
52
54
  config_section :object_metadata, required: false do
53
55
  config_param :key, :string, default: ""
54
56
  config_param :value, :string, default: ""
@@ -149,6 +151,14 @@ module Fluent::Plugin
149
151
  Digest::MD5.hexdigest(chunk.unique_id)[0...@hex_random_length]
150
152
  end
151
153
 
154
+ def check_object_exists(path)
155
+ if !@blind_write
156
+ return @gcs_bucket.find_file(path, @encryption_opts)
157
+ else
158
+ return false
159
+ end
160
+ end
161
+
152
162
  def generate_path(chunk, i = 0, prev = nil)
153
163
  metadata = chunk.metadata
154
164
  time_slice = if metadata.timekey.nil?
@@ -167,7 +177,7 @@ module Fluent::Plugin
167
177
  }
168
178
  path = @object_key_format.gsub(Regexp.union(tags.keys), tags)
169
179
  path = extract_placeholders(path, chunk)
170
- return path unless @gcs_bucket.find_file(path, @encryption_opts)
180
+ return path unless check_object_exists(path)
171
181
 
172
182
  if path == prev
173
183
  if @overwrite
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-gcs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daichi HIRATA
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-03-31 00:00:00.000000000 Z
11
+ date: 2020-10-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd
@@ -48,16 +48,16 @@ dependencies:
48
48
  name: rake
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
- - - "~>"
51
+ - - ">="
52
52
  - !ruby/object:Gem::Version
53
- version: '10.0'
53
+ version: 12.3.3
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - "~>"
58
+ - - ">="
59
59
  - !ruby/object:Gem::Version
60
- version: '10.0'
60
+ version: 12.3.3
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: rr
63
63
  requirement: !ruby/object:Gem::Requirement