This package helps make uploading file to Amazon S3 quick and easy.
Take a look at the README
for an example!
Internals.Config
Opaque configuration type for S3 requests
config : { accessKey : String, secretKey : String, bucket : String, region : String } -> Config
Create S3 config with the required files common across all requets
withPrefix : String -> Config -> Config
Add a prefix to the file being uploaded. This is helpful to specify a sub directory to upload the file to.
config |> withPrefix "my/sub/dir/"
withSuccessActionStatus : Basics.Int -> Config -> Config
Add a custom success HTTP status. This defaults to 201
.
config |> withSuccessActionStatus 200
withAwsS3Host : String -> Config -> Config
Add a custom S3 host. This defaults to s3.amazonaws.com
.
config |> withAwsS3Host "customhost.aws.com"
withAcl : String -> Config -> Config
Add a custom acl (Access Control List) for the uploaded document.
This defaults to public-read
config |> withAcl "private"
withTimeout : Basics.Float -> Config -> Config
Add a timeout to the network request. From the elm-http docs: "The timeout is the number of milliseconds you are willing to wait before giving up."
config |> withTimeout 5000
{ fileName : String
, contentType : String
, file : File
}
All the information needed for a specific file upload.
{ etag : String
, location : String
, bucket : String
, key : String
}
The response from the upload request.
uploadFileCmd : (Result Http.Error Response -> msg) -> FileData -> Config -> Platform.Cmd.Cmd msg
Upload a file
uploadFileTask : FileData -> Config -> Task Http.Error Response
Upload a file but as a task. This is helpful if you need to upload a file, then
get it's location from the Response
and send that on your server.
uploadFileHttp : { toMsg : Result Http.Error Response -> msg, maybeTracker : Maybe String, now : Time.Posix } -> FileData -> Config -> Platform.Cmd.Cmd msg
Upload file via Http.request
. Useful if you want to get the tracker
but you must provide your own Time.now
due to limitations with Http
+ Task
.
uploadFile : FileData -> Config -> (Result Http.Error Response -> msg) -> Platform.Cmd.Cmd msg
Deprecated. Use uploadFileCmd
instead