Я пишу приложение на Go, которое использует облачное хранилище Google.
Например, мой "читающий" код выглядит так:
client, err := storage.NewClient(ctx)
if err != nil {
return nil, err
}
defer func() {
if err := client.Close(); err != nil {
panic(err)
}
}()
r, err := client.Bucket(BucketName).Object(id).NewReader(ctx)
if err != nil {
return nil, err
}
defer r.Close()
return ioutil.ReadAll(r)
... где ctx
- это контекст из appengine.
Когда я запускаю этот код в модульном тесте (используя aetest
), он фактически отправляет запросы в мое облачное хранилище; Вместо этого я хотел бы выполнить это герметично, подобно тому, как aetest
разрешает ложные вызовы хранилища данных.
(Возможно связанный вопрос, но он имеет дело с python, и связанная проблема github указывает, что он решен специфичным для python способом).
Как я могу это сделать?