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
}
})