Похоже, что библиотека ожидает, что что-то непоследовательное между провайдерами будет предоставлено как BeforeWrite
обратные вызовы:
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)
Предупреждение: Я полностью не тестировал этот код, но он fmt'd, поэтому он должен работать?
Я предупрежу вас, кажется, что эта библиотека находится в альфа-версии, по этим причинам. Если вы решите использовать этот способ обхода, у вас возникнут проблемы с его повторным использованием для всех облачных провайдеров. В конечном счете, я предлагаю просто реализовать функциональность, которую вы хотели бы, используя предоставленные SDK, и использовать шаблон Factory / Adapter для получения подходящего адаптера для данного вызова.