Class: OpenBuckets

Inherits:
Service show all
Defined in:
lib/s3sec/services/open_buckets.rb

Defined Under Namespace

Classes: Bucket

Instance Method Summary collapse

Methods inherited from Service

call

Instance Method Details

#call(access_key:, secret:) ⇒ Object



6
7
8
9
10
11
12
# File 'lib/s3sec/services/open_buckets.rb', line 6

def call(access_key:, secret:)
  @access_key, @secret = access_key, secret
  collect_data
rescue => e
  puts e
  []
end

#clientObject



14
15
16
17
18
19
# File 'lib/s3sec/services/open_buckets.rb', line 14

def client
  @client ||= Aws::S3::Resource.new(
   credentials: Aws::Credentials.new(@access_key, @secret),
   region: 'eu-central-1'
  )
end

#collect_dataObject



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/s3sec/services/open_buckets.rb', line 21

def collect_data
  buckets = client.buckets.map do |b|
    region = client.client.get_bucket_location(bucket: b.name).location_constraint
    s3tempclient = Aws::S3::Resource.new(
     credentials: Aws::Credentials.new(@access_key, @secret),
     region: region
   )
   status = CheckAcl.call(s3tempclient.client.get_bucket_acl({bucket: b.name}))

   bucket = Bucket.new(b.name, region, status, s3tempclient.client, [])

   s3tempclient.bucket(b.name).objects.each do |obj|
     bucket.keys << obj.key
   end

   bucket
 end
end