Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const uploadVideo = Multer({
- storage: MulterStorage,
- limits: {
- fileSize: 5 * 1024 * 1024, // no larger than 5mb, you can change as needed.
- },
- fileFilter: (req, file, cb) => {
- console.log('FILE', file);
- const mimetype = file.mimetype.split('/')[0];
- console.log('FILE', mimetype);
- if (mimetype !== 'video') {
- cb('Error: File is not an video');
- }
- return cb(null, true);
- },
- }).single('blob');
- const server = express();
- server.use(cors());
- server.post('/upload/video', async (req, res) => {
- await uploadVideo(req, res, async (error) => {
- console.log('START');
- try {
- if (error) {
- console.log('ERROR', error);
- throw new Error('Multer error');
- }
- const { file } = req;
- const item = FBStorage.file(file.filename);
- console.log('RESPONSE');
- const [response] = await item.setMetadata({
- metadata: {
- contentType: file.mimetype,
- cacheControl: 'public, max-age=600',
- },
- });
- await FBDatabase.ref(`/video/${response.md5Hash}`).update({
- key: response.md5Hash,
- name: response.name,
- selfLink: response.selfLink,
- timeCreated: response.timeCreated,
- updated: response.updated,
- size: response.size,
- });
- console.log('SEND');
- return res.status(200).send({ md5Hash: response.md5Hash });
- } catch (err) {
- console.log('ERROR', err);
- return res.status(400).send({ message: 'Bad Request' });
- }
- });
- });
- const api = functions.https.onRequest((req, res) => server(req, res));
- export default api;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement