Lưu trữ tệp MongoDB
Chúng tôi thường cần lưu trữ các tệp trong cơ sở dữ liệu của mình, nhưng mongoDB không cho phép bạn lưu trữ bất kỳ tệp nào lớn hơn 16 Mb trong một tài liệu thông thường. Thay vào đó, MongoDB có một chức năng đặc biệt để lưu trữ các tệp lớn và nó có tên là GridFS Show GridFS chia tệp thành nhiều phần và sau đó lưu trữ chúng trong cơ sở dữ liệu GridFS lưu trữ các tệp trong các nhóm, là một nhóm các bộ sưu tập MongoDB bao gồm các khối tệp và thông tin tệp. GridFS có các bộ sưu tập này
Khi chúng tôi tạo một nhóm GridFS, nó sẽ tự động tạo các tệp và khối bộ sưu tập trong nhóm. Nhóm GridFS theo mặc định được đặt tên là fs Khi nào bạn nên sử dụng GridFS?
Trong bài này chúng ta sẽ thảo luận
Trong bài viết này, chúng tôi sẽ sử dụng phiên bản đám mây của MongoDB, còn được gọi là Atlas Tạo nút của bạn. js và nhận MongoDB Atlas URI để kết nối với máy khách nodejs của bạn Bạn có thể tham khảo bài viết này về Cách lấy MongoDB Atlas URI Tạo một dự án nút và khởi tạo npm trong đó,
Cài đặt các mô-đun npm cần thiết cho ứng dụng của chúng tôi
Cài đặt gật đầu dưới dạng phụ thuộc dev
Tạo ứng dụng. js và viết mã
Ở đây chúng tôi đang thiết lập máy chủ MongoDB với Mongoose, sau đó chúng tôi đang tạo nhóm khi chúng tôi có được kết nối với MongoDB Atlas, với chức năng
Chúng ta cũng đã chuyển biến bucketName với giá trị newBucket, do đó nhóm của chúng ta sẽ được tạo với tên newBucket. Ghi chú. nếu bạn không truyền bucketName thì MongoDB sẽ đặt cho nó tên mặc định là fs Hãy thiết lập mô-đun multer-gridfs, liên kết nó với GridFS của chúng ta, sau đó sử dụng nó trong điểm cuối /upload để tải tệp lên gridfs Thêm mã điểm cuối vào ứng dụng. js như sau
Ở đây chúng tôi đang sử dụng chức năng GridFsStorage trong mô-đun multer-gridfs-storage để kết nối với bộ lưu trữ GridFS. Sau đó, chúng tôi sẽ chỉ định bộ nhớ đó cho tải lên biến, sau đó sử dụng tải lên đó làm phần mềm trung gian trong điểm cuối /upload mà chúng tôi sẽ sử dụng để lắng nghe các yêu cầu đăng bao gồm các tệp sẽ được tải lên Hãy kiểm tra điểm cuối này trong Postman. Bạn sẽ nhận được đầu ra cho yêu cầu trên dưới dạng Bây giờ, hãy tạo một điểm cuối để truy xuất thông tin tệp và tải tệp xuống.
Ở đây chúng tôi đã tạo điểm cuối /fileinfo/. filename để tìm kiếm một tập tin và tải xuống nếu nó tồn tại trong cơ sở dữ liệu. Chúng tôi đang chuyển tên tệp dưới dạng tham số cho đường dẫn và sau đó chúng tôi đang sử dụng nhóm. tìm để tìm xem tệp có tồn tại trong cơ sở dữ liệu không. Nếu nó tồn tại, chúng tôi tạo một luồng tải xuống và định hướng nó để phản hồi; Hãy kiểm tra điểm cuối này bằng cách thu thập thông tin về tệp chúng tôi đã lưu trữ ở bước trước, bằng cách tạo yêu cầu GET trong Postman dưới dạng Và bạn phải nhận được đầu ra như sau Hiển thị bản pdf đã tải xuống.
Xóa một tập tin có thể được thực hiện tương tự bằng cách Và chúng ta cũng có thể thả một thùng bằng cách chạy ________số 8 Đó là cách bạn có thể triển khai GridFS trong ứng dụng nút/nhanh của mình Hạn chế của GrifdFSMặc dù GridFS là một công cụ tuyệt vời nhưng nó vẫn có một số hạn chế
|