Sha256: 507e695bb56f47362a294b6ceda91e8e1c964da06848c8f2d7547841aa161834
Contents?: true
Size: 1.16 KB
Versions: 1
Compression:
Stored size: 1.16 KB
Contents
# encoding: utf-8 require "stud/temporary" require "socket" require "fileutils" module LogStash module Outputs class S3 class WriteBucketPermissionValidator def self.valid?(bucket_resource) begin upload_test_file(bucket_resource) true rescue false end end private def self.upload_test_file(bucket_resource) generated_at = Time.now key = "logstash-programmatic-access-test-object-#{generated_at}" content = "Logstash permission check on #{generated_at}, by #{Socket.gethostname}" begin f = Stud::Temporary.file f.write(content) f.fsync f.close obj = bucket_resource.object(key) obj.upload_file(f) begin obj.delete rescue # Try to remove the files on the remote bucket, # but don't raise any errors if that doesn't work. # since we only really need `putobject`. end ensure FileUtils.rm_rf(f.path) end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
logstash-output-s3-4.0.0 | lib/logstash/outputs/s3/write_bucket_permission_validator.rb |