Мой вопрос похож на этот как получить список файлов в папке облачного хранилища Google с помощью node js.
Только я пытаюсь просто получить объекты верхнего уровня. Я пытаюсь следовать здесь файлы образцов хранилища nodejs. js, и когда я пробую разные комбинации «префикса» и «разделителя», мне трудно просто получить объекты верхнего уровня. Я пробовал префикс "" с разделителем "/". Я пробовал префикс "/" с разделителем "/". Я попробовал префикс «/» без разделителя. Кажется, ничего не работает, чтобы позволить мне получить только список объектов верхнего уровня. Кажется, я всегда получаю все файлы во всем ведре. Любые идеи о том, какие правильные параметры для префикса и разделителя могут работать? Есть ли другие варианты, о которых я не знаю, которые могут помочь?
Чтобы быть немного более конкретным, учитывая следующие капли:
- folder1 / file1.txt
- папка2/файл2.txt
Я просто хочу
- folder1 /
- folder2 /
Я пробовал пару вещей:
Префикс: "", разделитель: "", результаты:
- folder1 /
- folder1 / file1.txt
- folder2 /
- папка2/файл2.txt
Префикс: "", разделитель: "/", результаты:
- Нет результатов...
Префикс: "/", разделитель: "", результаты:
- Нет результатов...
Префикс: "/", разделитель: "/", результаты:
- Нет результатов...
Префикс: "folder1/", разделитель: "", результаты:
- folder1 /
- folder1 / file1.txt
... как я и ожидал; однако снова я не могу найти правильную комбинацию префикса и разделителя, чтобы просто получить два верхних результата объекта, которые я хочу:
- folder1 /
- folder2 /
1 ответ
Я думаю, что я, наконец, нашел ответ. Ответ находится на другом сайте для их документации. В частности, этот сайт и эта страница (для Bucket.getFiles()). В их примере показан обратный вызов с аргументами (err, files, nextQuery, apiResponse). Что странно, потому что даже этот сайт не упоминает nextQuery и apiResponse в качестве параметров для GetFilesCallback.
Я хочу использовать async/await и try/catch в своем приложении, поэтому беру примеры кода на getFiles, я сделал вывод, что могу получить то, что мне нужно, выполнив следующие действия:
const [files, nextQuery, apiResponse] = await storage.bucket(bucketName).getFiles({autoPaginate: false, delimiter: "/", prefix: ""});
А потом лично я обнаружил, что данные внутри "apiResponse" гораздо полезнее, чем в файлах. То, что я искал, было в apiResponse.items
и apiResponse.prefixes
.
Я просто очень удивлен, что ни одна из документации не показывает, как должен выглядеть этот apiResponse
, а страница GetFilesCallback даже не показывает его в качестве возможного параметра. В любом случае я смог найти то, что искал. Я думаю, что в моем случае использования я буду использовать этот параметр обратного вызова apiResponse
чаще, чем параметр files
.
Похожие вопросы
Связанные вопросы
Новые вопросы
node.js
Node.js — это основанная на событиях, неблокирующая, асинхронная среда выполнения ввода-вывода, использующая движок Google V8 JavaScript и библиотеку libuv. Он используется для разработки приложений, которые интенсивно используют возможность запуска JavaScript как на стороне клиента, так и на стороне сервера и, следовательно, выигрывают от возможности повторного использования кода и отсутствия переключения контекста.