Cho phép người dùng tải file từ remote server thông qua server của mình
Hiện tại mình muốn tạo 1 app nodejs nhỏ để kết nôi với external API. Người dùng có thể nhập tìm kiếm vào trang của mình và ra kết quả ngay mà không cần phải truy cập nhiều trang cùng lúc
Sau khi có được thông tin cần thiết rồi thì người dùng sẽ bấm tải file về. Tuy nhiên các API trên là private nên mình muốn kiểu server mình sẽ tải file về, cùng lúc đó gửi file cho người dùng luôn. Không biết cách thực hiện (hay ít nhất là thuật ngữ để tìm kiếm cái này) như thế nào.
À. Sau khi stream file cho người dùng thì server sẽ lưu trữ file đó luôn để dành sử dụng lần sau.
P/s: Sau một hồi ngẫm nghĩ thấy nó khá giống như mấy trang leech file
Anh lên Stack OverFlow hỏi chứ diễn đàn này anh Pro ai giúp được anh
Cứ hóng Pro thôi
Project còn lâu mới triển khai. Nên cứ hỏi trên đây cho đông vui. Chứ lên SO hỏi thì mất vui.
em giới thiệu cho anh facebook của ông này chiều nay em vừa nghe ông này chém gió về node.js anh hỏi thử nha anh ông này giỏi lắm à
https://www.facebook.com/laiphuong đây anh ơi anh thử kết bạn xem cả chiều hôm nay ông này chém gió về node.js anh à @thangngoc89
Cảm ơn bạn. Nhưng mà rắc rối thế này mình lên SO hỏi
Có thắc mắc là tại sao là private API mà sao Bác lại dùng nodejs get từ API được?
Tức là mình có access tới cái API đó. Nhưng mà không thể public ra ngoài được.
nghĩa là chỉ có bác là có quyền access đến các API đó , giờ muốn tạo mấy cái api trên node.js(trung gian) để public ra ngoài ah
Sau khi download file về thì bạn lưu vào 1 thư mục (ví dụ là public), sau đó serving static toàn bộ thư mục public, rồi trên link download thì trỏ link đến file là được.
Ví dụ serve bằng Express https://expressjs.com/en/starter/static-files.html
hoặc serve bằng Nginx https://www.nginx.com/resources/admin-guide/serving-static-content/
Ưu tiên dùng Nginx, vừa có thể lọc file lại có cơ chế cache file rất tốt.
Không phải vậy. Mình muốn stream trực tiếp về cho user chứ không phải server mình down về rồi mới cho người dùng tải tiếp. Vì dung lượng file rất lớn. Server có thể xoá các file này bất cứ lúc nào tuỳ thích
Sorry mình chưa đọc kỹ yêu cầu. Tuy nhiên mình chưa hình dung ra API gốc họ sẽ trả về dữ liệu như nào, bạn có thể post mẫu lên cho mọi người cùng tham khảo không?
Theo mình nghĩ thì khi lấy dữ liệu từ API về mình tạo 1 read stream rồi trả về luôn cho người dùng sử dụng fs của nodejs https://nodejs.org/api/fs.html#fs_class_fs_readstream
@robinhuy @nguyenhuuca cái API gốc không quan trọng. Vì kết quả là mình có 1 link download, chỉ dành riêng cho IP của server. Bây giờ mình muốn server của mình đóng vai trò trung gian (y như mấy cái trang leech )
Nếu mình hiểu đúng thì mình phải download hoàn toàn file này về phải không?
Như vậy có 2 vấn đề:
Đây có vẻ là câu trả lời. http://stackoverflow.com/questions/18879388/node-js-how-to-stream-remote-file-through-my-server-to-the-user
Cần phải test thử
Thay vì tạo read stream từ
fs
thì bây giờ tạoread
stream từhttp.get