Я прочитал следующую проблему на github https://github.com/googleapis/google-cloud-go/issues/1025 и обнаружил утечку памяти из-за созданных незанятых соединений, поэтому добавление http-клиента в ClientOption помогает. Тем не менее, я хотел бы реализовать это с использованием опции «WithCredentialsFile», но оказалось, что на основе документации «WithHTTPClient» не совместим.
Ниже мой подход:
client, err := storage.NewClient(ctx, option.WithCredentialsFile(cred), option.WithHTTPClient(httpClient))
if err != nil {
return err
}
defer client.Close()
И я всегда получаю следующую ошибку:
"googleapi: Error 401: Anonymous caller does not have storage.objects.create access to <filepath>, required"
Есть ли какое-нибудь решение этой проблемы?
обновление: я пытался избавиться от withCred при вызове newClient
os.Setenv("GOOGLE_APPLICATION_CREDENTIALS", cre)
client, err := storage.NewClient(ctx, option.WithHTTPClient(httpClient))
if err != nil {
return err
}
defer client.Close()
Но это все равно привело к вышеуказанной ошибке. Хотя, если я попытаюсь удалить с помощью http, это приведет к утечке памяти (по крайней мере, загрузка работает)