Powered by AppSignal & Oban Pro
Would you like to see your link here? Contact us

Bucket creation

livebook/aws/bucket-creation.livemd

Bucket creation

Setup Client

Setup the client. In this case we’re using Finch as the http_client

access_key_id = System.get_env("LB_AWS_ACCESS_KEY_ID")
secret_access_key = System.get_env("LB_AWS_SECRET_ACCESS_KEY")
region = "us-east-1"
client = AWS.Client.create(access_key_id, secret_access_key, region)
client = %{client | http_client: {AWS.HTTPClient.Finch, [finch_name: AWS.Finch]}}

Create ACLs Disabled

bucket_name = "example-abcd1234"

{:ok, nil, response} = AWS.S3.create_bucket(client, bucket_name, %{})

Create Bucket with ACLs

bucket_name = "example-1234abcd"

{:ok, nil, response} =
  AWS.S3.create_bucket(client, bucket_name, %{
    "ACL" => "private",
    "ObjectOwnership" => "BucketOwnerPreferred"
  })

Create Public Bucket

bucket_name = "example-public-1234abcd"

{:ok, nil, response} =
  AWS.S3.create_bucket(client, bucket_name, %{
    "ObjectOwnership" => "BucketOwnerPreferred"
  })

{:ok, nil, response} =
  AWS.S3.put_public_access_block(client, bucket_name, %{
    "PublicAccessBlockConfiguration" => %{
      "BlockPublicAcls" => false,
      "IgnorePublicAcls" => false,
      "BlockPublicPolicy" => true,
      "RestrictPublicBuckets" => true
    }
  })