fluent-plugin-s3 1.1.11 → 1.2.0
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/ChangeLog +4 -0
- data/README.md +10 -3
- data/VERSION +1 -1
- data/lib/fluent/plugin/out_s3.rb +33 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 26e0fd779938910c499dfdd043c253b90167c05c585945fddcaa37985302cbff
|
4
|
+
data.tar.gz: fe09d0a34580eeea82b3538f7e7fe8fcbc85e42dcb1d7dd5cedfbfeeefdfbe56
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aec5991826999db113542e9e313b03a2ca018d3b7143ca745f45a211f0ce3e3c66c1b5b84c087b3e5d654aeb8b840db1580e5b6911bd182b7fb1a4131ee317ce
|
7
|
+
data.tar.gz: 575fcd019697834d1ff5aef35a456fa7b5a54ec8c3f565285b50195ca1f5d67a24738d39973e9f7d7e9e15bac398ac96d494ffc1907e5cd6271385242cf36521
|
data/ChangeLog
CHANGED
data/README.md
CHANGED
@@ -5,9 +5,6 @@ alt="Build Status" />](https://travis-ci.org/fluent/fluent-plugin-s3) [<img
|
|
5
5
|
src="https://codeclimate.com/github/fluent/fluent-plugin-s3/badges/gpa.svg"
|
6
6
|
/>](https://codeclimate.com/github/fluent/fluent-plugin-s3)
|
7
7
|
|
8
|
-
## PR
|
9
|
-
**it will be greatful that the plugin can push log to owner S3 Storage like Ceph S3.**
|
10
|
-
|
11
8
|
## Overview
|
12
9
|
|
13
10
|
**s3** output plugin buffers event logs in local file and upload it to S3
|
@@ -569,6 +566,16 @@ It would be useful when you use S3 compatible storage that accepts only signatur
|
|
569
566
|
|
570
567
|
Given a threshold to treat events as delay, output warning logs if delayed events were put into s3.
|
571
568
|
|
569
|
+
**bucket_lifecycle_rule**
|
570
|
+
|
571
|
+
Specify one or more lifecycle rules for the bucket
|
572
|
+
|
573
|
+
<bucket_lifecycle_rule>
|
574
|
+
id UNIQUE_ID_FOR_THE_RULE
|
575
|
+
prefix OPTIONAL_PREFIX # Objects whose keys begin with this prefix will be affected by the rule. If not specified all objects of the bucket will be affected
|
576
|
+
expiration_days NUMBER_OF_DAYS # The number of days before the object will expire
|
577
|
+
</bucket_lifecycle_rule>
|
578
|
+
|
572
579
|
## Input: Setup
|
573
580
|
|
574
581
|
1. Create new [SQS](https://aws.amazon.com/documentation/sqs/) queue (use same region as S3)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.2.0
|
data/lib/fluent/plugin/out_s3.rb
CHANGED
@@ -124,6 +124,14 @@ module Fluent::Plugin
|
|
124
124
|
config_param :warn_for_delay, :time, default: nil
|
125
125
|
desc "Arbitrary S3 metadata headers to set for the object"
|
126
126
|
config_param :s3_metadata, :hash, default: nil
|
127
|
+
config_section :bucket_lifecycle_rule, param_name: :bucket_lifecycle_rules, multi: true do
|
128
|
+
desc "A unique ID for this rule"
|
129
|
+
config_param :id, :string
|
130
|
+
desc "Objects whose keys begin with this prefix will be affected by the rule. If not specified all objects of the bucket will be affected"
|
131
|
+
config_param :prefix, :string, default: ''
|
132
|
+
desc "The number of days before the object will expire"
|
133
|
+
config_param :expiration_days, :integer
|
134
|
+
end
|
127
135
|
|
128
136
|
DEFAULT_FORMAT_TYPE = "out_file"
|
129
137
|
|
@@ -217,6 +225,7 @@ module Fluent::Plugin
|
|
217
225
|
|
218
226
|
check_apikeys if @check_apikey_on_start
|
219
227
|
ensure_bucket if @check_bucket
|
228
|
+
ensure_bucket_lifecycle
|
220
229
|
|
221
230
|
super
|
222
231
|
end
|
@@ -373,6 +382,30 @@ module Fluent::Plugin
|
|
373
382
|
end
|
374
383
|
end
|
375
384
|
|
385
|
+
def ensure_bucket_lifecycle
|
386
|
+
unless @bucket_lifecycle_rules.empty?
|
387
|
+
old_rules = get_bucket_lifecycle_rules
|
388
|
+
new_rules = @bucket_lifecycle_rules.sort_by { |rule| rule.id }.map do |rule|
|
389
|
+
{ id: rule.id, expiration: { days: rule.expiration_days }, prefix: rule.prefix, status: "Enabled" }
|
390
|
+
end
|
391
|
+
|
392
|
+
unless old_rules == new_rules
|
393
|
+
log.info "Configuring bucket lifecycle rules for #{@s3_bucket} on #{@s3_endpoint}"
|
394
|
+
@bucket.lifecycle_configuration.put({ lifecycle_configuration: { rules: new_rules } })
|
395
|
+
end
|
396
|
+
end
|
397
|
+
end
|
398
|
+
|
399
|
+
def get_bucket_lifecycle_rules
|
400
|
+
begin
|
401
|
+
@bucket.lifecycle_configuration.rules.sort_by { |rule| rule[:id] }.map do |rule|
|
402
|
+
{ id: rule[:id], expiration: { days: rule[:expiration][:days] }, prefix: rule[:prefix], status: rule[:status] }
|
403
|
+
end
|
404
|
+
rescue Aws::S3::Errors::NoSuchLifecycleConfiguration
|
405
|
+
[]
|
406
|
+
end
|
407
|
+
end
|
408
|
+
|
376
409
|
def process_s3_object_key_format
|
377
410
|
%W(%{uuid} %{uuid:random} %{uuid:hostname} %{uuid:timestamp}).each { |ph|
|
378
411
|
if @s3_object_key_format.include?(ph)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-s3
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sadayuki Furuhashi
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2019-
|
12
|
+
date: 2019-10-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: fluentd
|