It looks like the library expects anything inconsistent between providers to be provided as BeforeWrite
callbacks:
opts := &blob.WriterOptions{}
opts.BeforeWrite(func(i interface{}) bool {
p, ok := i.(*s3manager.UploadInput)
if !ok {
return false
}
p.ACL = aws.String("public-read")
return true
})
w, err := b.NewWriter(ctx, "feeds/index.html", opts)
Warning: I totally didn't test this code, but it fmt'd, so it should work?
I will warn you, it seems this library is in alpha, for these types of reasons. Relying on this kind of work around is going to cause you issues trying to reuse it for all cloud providers. Ultimately, I suggest just implementing the functionality you'd like using the provided SDKs, and leveraging the Factory/Adapter pattern to retrieve the right adapter for a given call.