Issues a short-lived presigned URL for direct upload to object storage. The returned id is used to reference the upload from resources that accept binary content.
Create an upload
package main
import (
"context"
"fmt"
"github.com/cadenya/cadenya-go"
"github.com/cadenya/cadenya-go/option"
"github.com/cadenya/cadenya-go/shared"
)
func main() {
client := cadenya.NewClient(
option.WithAPIKey("My API Key"),
)
upload, err := client.Uploads.New(context.TODO(), cadenya.UploadNewParams{
Metadata: cadenya.F(shared.CreateResourceMetadataParam{
Name: cadenya.F("name"),
}),
Spec: cadenya.F(cadenya.UploadSpecParam{
ContentType: cadenya.F("contentType"),
Filename: cadenya.F("filename"),
SizeBytes: cadenya.F("sizeBytes"),
}),
})
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", upload.Info)
}
{
"info": {
"createdBy": {
"metadata": {
"id": "id",
"accountId": "accountId",
"name": "name",
"profileId": "profileId",
"externalId": "externalId",
"labels": {
"foo": "string"
}
},
"spec": {
"type": "PROFILE_TYPE_USER",
"email": "email",
"name": "name"
}
},
"status": "UPLOAD_STATUS_UNSPECIFIED",
"uploadUrl": "uploadUrl",
"uploadUrlExpiresAt": "2019-12-27T18:11:19.117Z"
},
"metadata": {
"id": "id",
"accountId": "accountId",
"createdAt": "2019-12-27T18:11:19.117Z",
"name": "name",
"profileId": "profileId",
"workspaceId": "workspaceId",
"externalId": "externalId",
"labels": {
"foo": "string"
}
},
"spec": {
"contentType": "contentType",
"filename": "filename",
"sizeBytes": "sizeBytes"
}
}Returns Examples
{
"info": {
"createdBy": {
"metadata": {
"id": "id",
"accountId": "accountId",
"name": "name",
"profileId": "profileId",
"externalId": "externalId",
"labels": {
"foo": "string"
}
},
"spec": {
"type": "PROFILE_TYPE_USER",
"email": "email",
"name": "name"
}
},
"status": "UPLOAD_STATUS_UNSPECIFIED",
"uploadUrl": "uploadUrl",
"uploadUrlExpiresAt": "2019-12-27T18:11:19.117Z"
},
"metadata": {
"id": "id",
"accountId": "accountId",
"createdAt": "2019-12-27T18:11:19.117Z",
"name": "name",
"profileId": "profileId",
"workspaceId": "workspaceId",
"externalId": "externalId",
"labels": {
"foo": "string"
}
},
"spec": {
"contentType": "contentType",
"filename": "filename",
"sizeBytes": "sizeBytes"
}
}