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

ExAws

livebooks/ex_aws.livemd

ExAws

Basics

# ExAws.S3.put_bucket("bucket", "us-west-1")
# |> ExAws.request!()
%{buckets: buckets} = ExAws.S3.list_buckets()
|> ExAws.request!()
|> Map.get(:body)
ExAws.S3.put_bucket_cors("bucket", [
  %{
    allowed_headers: ["*"],
    allowed_methods: ["GET", "PUT", "POST"],
    allowed_origins: ["*"],
    exposed_headers: []
  }
])
|> ExAws.request!()
ExAws.S3.get_bucket_acl("bucket")
|> ExAws.request!()
|> Map.get(:body)
|> XmlToMap.naive_map
ExAws.S3.list_objects("bucket")
|> ExAws.request!()
upload_path = File.cwd!()
|> Path.join("priv/static/uploads")
test_file = File.ls!(upload_path)
|> List.first()

jpg =
  upload_path
  |> Path.join(test_file)
  |> Image.thumbnail!(200)
  |> Image.stream!(suffix: ".jpg", buffer_size: 5_242_880)
  |> ExAws.S3.upload("bucket", "some_object_name.jpg")
  |> ExAws.request!()
    config = ExAws.Config.new(:s3)
    bucket = "bucket"
    key = "public/testfile2"

    

    {:ok, url} =
      ExAws.S3.presigned_url(config, :put, bucket, key,
        expires_in: 3600,
        query_params: [{"Content-Type", "image/jpeg"}]
      )
url
url
|> Req.put!(body: "hi there!")
ExAws.S3.get_object("bucket", "public/testfile2")
|> ExAws.request!()
ExAws.S3.list_objects("bucket")
|> ExAws.request!()