---
name: "Net::Amazon::S3::Client::Bucket"
section: "3pm"
platform: "linux"
package: "libnet-amazon-s3-perl"
version: "0.991-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Net::Amazon::S3::Client::Bucket"
---

# Net::Amazon::S3::Client::Bucket(3pm)

An easy-to-use Amazon S3 client bucket

## NAME

Net::Amazon::S3::Client::Bucket - An easy-to-use Amazon S3 client bucket

## VERSION

version 0.991

## SYNOPSIS

```
  # return the bucket name
  print $bucket->name . "\n";
  # return the bucket location constraint
  print "Bucket is in the " . $bucket->location_constraint . "\n";
  # return the ACL XML
  my $acl = $bucket->acl;
  # list objects in the bucket
  # this returns a L<Data::Stream::Bulk> object which returns a
  # stream of L<Net::Amazon::S3::Client::Object> objects, as it may
  # have to issue multiple API requests
  my $stream = $bucket->list;
  until ( $stream->is_done ) {
    foreach my $object ( $stream->items ) {
      ...
    }
  }
  # or list by a prefix
  my $prefix_stream = $bucket->list( { prefix => 'logs/' } );
  # returns a L<Net::Amazon::S3::Client::Object>, which can then
  # be used to get or put
  my $object = $bucket->object( key => 'this is the key' );
  # delete the bucket (it must be empty)
  $bucket->delete;
```

## DESCRIPTION

This module represents buckets.

## METHODS

### acl

```
  # return the ACL XML
  my $acl = $bucket->acl;
```

### add\_tags

```
        $bucket->add_tags (
                tags => { tag1 => 'val1', ... },
        )
```

### delete\_tags

```
        $bucket->delete_tags;
```

### delete

```
  # delete the bucket (it must be empty)
  $bucket->delete;
```

### list

```
  # list objects in the bucket
  # this returns a L<Data::Stream::Bulk> object which returns a
  # stream of L<Net::Amazon::S3::Client::Object> objects, as it may
  # have to issue multiple API requests
  my $stream = $bucket->list;
  until ( $stream->is_done ) {
    foreach my $object ( $stream->items ) {
      ...
    }
  }
  # or list by a prefix
  my $prefix_stream = $bucket->list( { prefix => 'logs/' } );
  # you can emulate folders by using prefix with delimiter
  # which shows only entries starting with the prefix but
  # not containing any more delimiter (thus no subfolders).
  my $folder_stream = $bucket->list( { prefix => 'logs/', delimiter => '/' } );
```

### location\_constraint

```
  # return the bucket location constraint
  print "Bucket is in the " . $bucket->location_constraint . "\n";
```

### name

```
  # return the bucket name
  print $bucket->name . "\n";
```

### object

```
  # returns a L<Net::Amazon::S3::Client::Object>, which can then
  # be used to get or put
  my $object = $bucket->object( key => 'this is the key' );
```

### delete\_multi\_object

```
  # delete multiple objects using a multi object delete operation
  # Accepts a list of L<Net::Amazon::S3::Client::Object or String> objects.
  $bucket->delete_multi_object($object1, $object2)
```

### object\_class

```
  # returns string "Net::Amazon::S3::Client::Object"
  # allowing subclasses to add behavior.
  my $object_class = $bucket->object_class;
```

## AUTHOR

Branislav Zahradník \<barney@cpan.org\>

## COPYRIGHT AND LICENSE

This software is copyright (c) 2022 by Amazon Digital Services, Leon Brocard, Brad Fitzpatrick, Pedro Figueiredo, Rusty Conover, Branislav Zahradník.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
