Реализация облачной функции 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;
});
Это загрузчик, который проверяет, установлен ли .NET Framework перед запуском MSI. Это очень удобно.
Я предлагаю использовать что-то вроде компилятора SFX, чтобы упаковать их вместе в один самораспаковывающийся .exe и затем запустить извлеченный файл setup.exe. Таким образом вы сохраняете преимущества загрузчика, но ваши пользователи загружают только одну вещь.
Редактировать : также см.
EXE проверяет, присутствует ли установщик Windows 3.0, загружает и устанавливает его, если его нет. Это нужно только для Windows 2000 или старше. Windows XP и новее имеют Windows Installer 3.0 из коробки.
Другие предварительные условия, такие как .NET, проверяются самим MSI.
Я думаю, что EXE - это просто оболочка / загрузчик для MSI на тот случай, если у вас нет Window Installer. Если у вас установлена необходимая версия установщика Windows, MSI должен нормально работать.