Я пытаюсь организовать ресурсы (изображения) в папки с уникальным идентификатором для каждого ресурса, причина в том, что каждый ресурс будет иметь несколько форматов (миниатюры и форматы, оптимизированные для веб-страниц и разных видов просмотра).
Таким образом, для каждого актива, который я загружаю в папку, assets-temp/
затем перемещается и переименовывается функциями в assets/{unique-id}/original{extension}
.
пример: assets-temp/my-awesome-image.jpg
должно стать assets/489023840984/original.jpg
.
примечание: я также отслеживаю файлы с их исходным именем в БД и в метаданных файла оригинала.
Проблема : функция запускается и выполняет то, что я хочу, но она также добавляет папку с именем assets/{uuid}/original/
, в которой ничего нет ...
Функция:
exports.process_new_assets = functions.storage.object().onFinalize(async (object) => {
// Run this function only for files uploaded to the "assets-temp/" folder.
if (!object.name.startsWith('assets-temp/')) return null;
const file = bucket.file(object.name);
const fileExt = path.extname(object.name);
const destination = bucket.file(`assets/${id}/original${fileExt}`);
const metadata = {
id,
name: object.name.split('/').pop()
};
// Move the file to the new location.
return file.move(destination, {metadata});
});