Переопределить имя файла хранилища firebase перед его загрузкой? - PullRequest
1 голос
/ 10 июля 2020

Я работаю над функциональностью, подобной «google drive» в моем приложении, и застрял на функции «переименовать файл»: потому что хранилище firebase работает в облаке google, а облако google не имеет функции «переименовать» эта задача оказалась не такой уж очевидной. (у них есть команда «переместить», которая слишком сложна для переименования, поскольку она сначала копирует, а затем удаляет файл)

Однако я храню объект «дескриптор» в хранилище для каждого файла. Среди других данных в этом дескрипторе хранится имя файла, которое я использую для отображения пользователям.

Единственная причина, по которой я искал возможность переименовать файл в самом хранилище, заключается в том, что у моих пользователей есть возможность загрузить каждый файл - в этом случае имя файла берется из самого хранилища, и я не могу найти способ его изменить.

Для этого я генерирую ссылку, как показано ниже, которую пользователь нажимает, чтобы загрузить файл:

<a href="https://...myurl.com/..path_to_file/Hook.docx?..token-here..." download="Hook111.docx" target="_blank"></a>

Оказалось, что параметр download - это игнорируется браузерами, если сервер возвращает имя в заголовке

Итак, я надеялся обновить имя в хранилище с помощью метаданных файла:

bucket.file(".../Hook.docx").setMetadata({name:"Hook11122.docx"})

, но я получаю эту ошибку

Ошибка: значение «Hook11122.docx» в содержимом не соответствует значению «users / Corp9wBL7BSHMgQf4mMnOyS31mD3 / drive /BkkS0TbJMCxPUR9uHb2A_Hook.docx '. Это может произойти, когда значение, установленное с помощью параметра, несовместимо со значением, установленным в запросе.

Вероятно, есть другие решения этой проблемы, но есть ли способ сообщить хранилищу firebase, чтобы другое / нестандартное имя при скачивании файла по ссылке?

...