Я использую сервис google-cloud-storage для загрузки и загрузки файлов из моего приложения Ruby on Rails в хранилище Firebase (часть другого приложения, с которым я взаимодействую).
Загрузка работает отлично, используя ключ JSON из раздела учетных записей службы Firebase.Я загружаю файлы следующим образом:
STORAGE = Google::Cloud::Storage.new(
project_id: "blah",
credentials: File.join(Rails.root, 'config', 'firebase-auth.json')
)
BUCKET = STORAGE.bucket DEFAULT_BUCKET_ID
...
file_on_firebase = BUCKET.create_file(file_path.to_s, firebase_path, acl: "public_read")
Я вижу загруженные файлы в консоли хранения Firebase, но при попытке загрузить их через консоль я получаю следующую ошибку в консоли моего браузера:
uncaught exception: CustomError: Error in protected function: Firebase Storage:
User is not authenticated, please authenticate using Firebase Authentication and try again.
Это странно, поскольку учетная запись, к которой у меня есть доступ к консоли Firebase, является основной служебной учетной записью, и я могу без проблем загружать другие (загруженные вручную) файлы.У меня возникают проблемы с загрузкой, только те, которые загружены из моего приложения Rails.
Есть мысли?Я думаю, что это должно быть связано с установкой атрибута acl
для file
в public_read
.Однако не уверен, почему это помешает загрузке файла из консоли.Кажется, что я могу получить доступ к файлам ОК, используя их public_url
.