Ответ 1
app.get('/img/bg.png', function(req, res) {
res.sendFile('public/img/background.png')
})
http://expressjs.com/api.html#res.sendfile
используйте "res.sendFile". "res.sendfile" устарел.
Как вы отправляете файлы на node.js/express.
Я использую Rackspace Cloudfiles и хочу отправлять изображения/видео в их удаленное хранилище, но я не уверен, что это так же просто, как чтение файла (fs.readFileSync()) и отправка данных в тело запроса, или это
Каковы должны быть заголовки.
Что делать, если это очень большой файл на пару GB?
Можно ли использовать суперагент (http://visionmedia.github.com/superagent) для этого или есть лучшая библиотека для отправки файлов?
Пожалуйста, дайте мне информацию об этом.
Спасибо!
app.get('/img/bg.png', function(req, res) {
res.sendFile('public/img/background.png')
})
http://expressjs.com/api.html#res.sendfile
используйте "res.sendFile". "res.sendfile" устарел.
Я использую Rackspace Cloudfiles и хочу отправлять изображения/видео в их удаленное хранилище, но я не уверен, что это так же просто, как чтение файла (fs.readFileSync()) и отправка данных в тело запроса, или это
Вы никогда не должны использовать fs.readFileSync
в целом. Когда вы используете его или любой другой метод под названием somethingSync
, вы блокируете весь сервер в течение всего этого вызова. Единственное приемлемое время для синхронных вызовов в программе node.js - во время запуска.
Каковы должны быть заголовки.
См. API облачных файлов RackSpace.
Можно ли использовать суперагент (http://visionmedia.github.com/superagent) для этого или есть лучшая библиотека для отправки файлов?
Пока у меня нет опыта с суперагентом, я уверен, что он будет работать нормально. Просто убедитесь, что вы читаете документацию по API и делаете свои запросы в соответствии со своей спецификацией.
Для больших файлов вы захотите использовать концепцию потоков > . Вы хотите открыть локальный файл для чтения, запустить HTTP-запрос в rackspace, а затем передать события данных из процесса чтения файла в процесс HTTP-запроса.
Вот статья о том, как это сделать.
Superagent отлично подходит для небольших файлов, но поскольку API-интерфейс superagent предполагает, что весь ваш объект запроса загружен в память перед запуском запроса, это не лучший подход для больших передач файлов.
Обычно вам не нужно беспокоиться о заголовках запросов, поскольку node библиотека запросов HTTP отправит вам соответствующие заголовки. Просто убедитесь, что вы используете любой HTTP-метод, который требует ваш API (возможно, POST), и похоже, что для rackspace вам нужно добавить дополнительный заголовок X-Auth-Token
с вашим токеном API.