Skip to content

Commit a7267c5

Browse files
committed
Use bucket based on placeholder
Signed-off-by: rmontenegroo <[email protected]>
2 parents e6c72a7 + a7d8ddd commit a7267c5

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

lib/fluent/plugin/out_s3.rb

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,35 @@ def write(chunk)
298298
else
299299
@time_slice_with_tz.call(metadata.timekey)
300300
end
301+
302+
bucket_name = nil
303+
304+
if @s3_bucket =~ /\$\{.*\}/
305+
@s3_bucket.scan(/\$\{([^\$\{\}]+)\}/) do |placeholder|
306+
placeholder = placeholder.join
307+
if (not chunk.metadata.variables) or (not chunk.metadata.variables.keys.include?(placeholder.to_sym))
308+
log.warn "There is no placeholder '#{placeholder}'"
309+
if @s3_bucket_fallback
310+
bucket_name = @s3_bucket_fallback
311+
log.warn "Using @s3_bucket_fallback ('#{@s3_bucket_fallback}') as a fallback bucket name."
312+
break
313+
else
314+
raise "It was possible to extract placeholder '#{placeholder}' from chunk and @s3_bucket_fallback is not set."
315+
end
316+
end
317+
end
318+
319+
if not bucket_name
320+
bucket_name = extract_placeholders(@s3_bucket, chunk)
321+
end
322+
323+
bucket = @s3.bucket(bucket_name)
324+
check_apikeys(bucket) if @check_apikey_on_start
325+
ensure_bucket(bucket) if @check_bucket
326+
ensure_bucket_lifecycle(bucket)
327+
else
328+
bucket = @bucket
329+
end
301330

302331
bucket = @bucket ? @bucket : nil
303332

0 commit comments

Comments
 (0)