Advertisement
Guest User

Untitled

a guest
Dec 1st, 2017
601
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const uploadVideo = Multer({
  2.       storage: MulterStorage,
  3.       limits: {
  4.         fileSize: 5 * 1024 * 1024, // no larger than 5mb, you can change as needed.
  5.       },
  6.       fileFilter: (req, file, cb) => {
  7.         console.log('FILE', file);
  8.         const mimetype = file.mimetype.split('/')[0];
  9.         console.log('FILE', mimetype);
  10.    
  11.         if (mimetype !== 'video') {
  12.           cb('Error: File is not an video');
  13.         }
  14.    
  15.         return cb(null, true);
  16.       },
  17.     }).single('blob');
  18.    
  19.     const server = express();
  20.     server.use(cors());
  21.    
  22.     server.post('/upload/video', async (req, res) => {
  23.       await uploadVideo(req, res, async (error) => {
  24.         console.log('START');
  25.         try {
  26.           if (error) {
  27.             console.log('ERROR', error);
  28.             throw new Error('Multer error');
  29.           }
  30.    
  31.           const { file } = req;
  32.           const item = FBStorage.file(file.filename);
  33.  
  34.           console.log('RESPONSE');
  35.       const [response] = await item.setMetadata({
  36.         metadata: {
  37.           contentType: file.mimetype,
  38.           cacheControl: 'public, max-age=600',
  39.         },
  40.       });
  41.    
  42.           await FBDatabase.ref(`/video/${response.md5Hash}`).update({
  43.             key: response.md5Hash,
  44.             name: response.name,
  45.             selfLink: response.selfLink,
  46.             timeCreated: response.timeCreated,
  47.             updated: response.updated,
  48.             size: response.size,
  49.           });
  50.    
  51.           console.log('SEND');
  52.           return res.status(200).send({ md5Hash: response.md5Hash });
  53.         } catch (err) {
  54.           console.log('ERROR', err);
  55.    
  56.           return res.status(400).send({ message: 'Bad Request' });
  57.         }
  58.       });
  59.     });
  60.    
  61.     const api = functions.https.onRequest((req, res) => server(req, res));
  62.    
  63.     export default api;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement