results = []
chunk_size = 10
while(array.length > 0){
results.push(array.splice(0, chunk_size))
}
Реализация облачной функции HTTPS, которая обрабатывает запрос с предоставленной информацией domain
и thumbID
следующим образом.
Облачная функция HTTPS - это не что иное, как конечная точка API, которая должна отвечать данными контента, как это сделал бы веб-сервер. Поэтому для обслуживания изображения вам необходимо отправить необработанные данные и установить соответствующие заголовки HTTP (например, Content-Type
).
Если у вас частые запросы на один и тот же ресурс изображения, то вы можете избавить себя от слишком большого количества запросов облачного хранилища, а также улучшить время отклика, установив заголовок кэша Cache-Control
( https: //developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control)
Административный API для облачного хранилища Firebase использует GCP API, и вы можете найти Документация для загрузки или запроса файлов здесь: https://cloud.google.com/nodejs/docs/reference/storage/2.3.x/File#download
Попробуйте что-то вроде этого в объявлении облачных функций index.ts
.
import * as admin from 'firebase-admin';
// ...
// Set up your cloud functions etc
// ...
const app = express();
export const tanam = functions.https.onRequest(app);
app.get('/thumb/:domain/:thumbID', async (request, response) => {
const domain = request.params.domain;
const thumbID = request.params.thumbID;
const imageInformation = await getImage(domain, thumbID);
const contentFile = await admin.storage().bucket().file(imageInformation.name);
const [fileContent] = await contentFile.download();
response.setHeader('Content-Type', imageInformation.contentType);
response.send(fileContent);
return null;
});
Я не уверен, что правильно понял, я бы прокомментировал, если бы мог. Я понял, что вы пытаетесь использовать API cURL Facebook для создания рекламы из изображения, которое вы загружаете из хранилища Firebase, поправьте меня, если я ошибаюсь. Вы пытались передать mediaLink изображения?