2016-02-24 3 views
-1

Возможно ли, что клиент может напрямую нажать файл на наши серверы через API? Как насчет перенаправления файла с нашего сервера на другой через API?node.js | loopback, обработка прямой загрузки файлов

Прямо сейчас мои серверы выходят и захватывают файлы из локаций через «get». Это не самый эффективный потенциал, и есть основания полагать, что я не смогу получить доступ ко всем файлам напрямую через get.

+0

Да. Возможно с большим количеством пакетов и протоколов. Например, http. – bolav

+0

@ bolav, чтобы привести пример? – hownowbrowncow

ответ

1

Для отправки вы можете использовать request модуль form feature для загрузки файлов.

var formData = { 
    my_file: fs.createReadStream(__dirname + '/unicycle.jpg'), 
}; 
request.post({url:'http://service.com/upload', formData: formData}, function optionalCallback(err, httpResponse, body) { 
    if (err) { 
    return console.error('upload failed:', err); 
    } 
    console.log('Upload successful! Server responded with:', body); 
}); 

Для получения файлов в узле вы можете использовать что-то вроде экспресс с multer:

var multer = require('multer') 
var upload = multer({ dest: 'uploads/' }) 
app.post('/profile', upload.single('avatar'), function (req, res, next) { 
    // req.file is the `avatar` file 
    // req.body will hold the text fields, if there were any 
}) 
+0

Возможно ли сделать что-то подобное без использования инфраструктуры фронта/формы? Непосредственно через API. – hownowbrowncow

+0

Вам не нужна форма для отправки формы через пакет запроса. – bolav

+0

, так что пользователь должен будет сформулировать радикально различный вызов API для того, чтобы сделать этот запрос, в отличие от обычного, без передачи файла? Если так, то пусть будет так. Есть ли ограничение на размер файла с помощью этого метода? Я говорю mb или gb – hownowbrowncow