f, _ := os.Open("logo.png")
info, _ := f.Stat()
obj, err := client.Blob.Put(ctx, "images/logo.png", f, info.Size(), &vertracloud.BlobPutOptions{
Visibility: "public",
OnProgress: func(loaded, total int64) { fmt.Println(loaded, total) },
})
// f must give the same file from its first byte
obj, err = client.Blob.Resume(ctx, uploadID, f, nil)
it := client.Blob.List(ctx, &vertracloud.BlobListOptions{Prefix: "images/"})
for it.Next(ctx) {
fmt.Println(it.Object().Path)
}
if err := it.Err(); err != nil { /* handle */ }
obj, err = client.Blob.Get(ctx, id)
owner := "alice"
obj, err = client.Blob.Update(ctx, id, vertracloud.BlobUpdate{
Visibility: "private",
Metadata: map[string]*string{"owner": &owner}, // a nil value removes the key
Filename: vertracloud.NullableValue("logo.png"), // vertracloud.NullableNull[string]() restores the default
})
obj, err = client.Blob.Copy(ctx, id, "backup/logo.png", nil)
obj, err = client.Blob.Move(ctx, id, "img/logo.png", nil)
err = client.Blob.Delete(ctx, id)
res, err := client.Blob.DeleteMany(ctx, vertracloud.BlobDeleteManyOptions{Prefix: "tmp/"})
link, err := client.Blob.DownloadURL(ctx, id, &vertracloud.BlobDownloadOptions{ExpiresIn: 600})
stats, err := client.Blob.Stats(ctx)
token, err := client.Blob.CreateUploadToken(ctx, vertracloud.BlobUploadTokenInput{Prefix: "avatars/", MaxSize: 5_000_000})
creds, err := client.Blob.S3Credentials(ctx)
share, err := client.Blob.Shares.Create(ctx, vertracloud.BlobShareInput{ObjectID: id, MaxDownloads: 10})
shares, err := client.Blob.Shares.List(ctx, id)
err = client.Blob.Shares.Revoke(ctx, share.ID)
current, err := client.Blob.Rules.Get(ctx)
days := 30
rules, err := client.Blob.Rules.Put(ctx, "tmp/", vertracloud.BlobRuleInput{DeleteAfterDays: &days})
rules, err = client.Blob.Rules.Set(ctx, []vertracloud.BlobRuleEntry{{Prefix: "tmp/", BlobRuleInput: vertracloud.BlobRuleInput{DeleteAfterDays: &days}}}, current.ETag)
rules, err = client.Blob.Rules.Delete(ctx, "tmp/")
domain, err := client.Blob.Domains.Add(ctx, "cdn.example.com", "", false)
domain, err = client.Blob.Domains.Update(ctx, domain.ID, true)
domain, err = client.Blob.Domains.Verify(ctx, domain.ID)
domains, err := client.Blob.Domains.List(ctx)
err = client.Blob.Domains.Delete(ctx, domain.ID)