Чтобы создать файл и разрешить пользователям загружать его с Heroku, вы можете использовать несколько методов в зависимости от ваших требований. Вот несколько вариантов с примерами кода:
-
Использование серверной платформы (например, Node.js):
const express = require('express'); const fs = require('fs'); const app = express(); app.get('/download', (req, res) => { const filePath = '/path/to/your/file.ext'; const fileName = 'file.ext'; res.download(filePath, fileName); }); app.listen(process.env.PORT || 3000, () => { console.log('Server is running...'); });
В этом примере мы используем Express.js для создания конечной точки
/download
, которая запускает загрузку файла при доступе. Функцияres.download()
устанавливает соответствующие заголовки и инициирует загрузку. -
Использование статического файлового сервера:
Если у вас настроен статический файловый сервер на Heroku, вы можете просто поместить файл, который хотите загрузить, в соответствующий каталог. Например, если вы используете пакет
http-server
, вы можете сделать следующее:$ npm install -g http-server $ http-server public/
Предполагая, что ваш файл находится в каталоге
public/
, он будет доступен для загрузки в каталогеhttp://your-heroku-app-url/filename.ext
. -
Использование облачного хранилища:
Если ваш файл хранится в облачном хранилище, таком как Amazon S3 или Google Cloud Storage, вы можете создать заранее подписанный URL-адрес и предоставить его пользователям для загрузки. Вот пример использования AWS SDK для Node.js:
const AWS = require('aws-sdk'); const s3 = new AWS.S3(); app.get('/download', (req, res) => { const params = { Bucket: 'your-bucket-name', Key: 'path/to/your/file.ext', }; const signedUrl = s3.getSignedUrl('getObject', params); res.redirect(signedUrl); });
Этот код генерирует предварительно подписанный URL-адрес для файла в Amazon S3 и перенаправляет пользователя на этот URL-адрес, инициируя загрузку.
Это всего лишь несколько методов, которые вы можете использовать для создания и загрузки файлов из Heroku. Не забудьте настроить фрагменты кода в соответствии с вашими потребностями.