Hướng dẫn mongodb gridfs example - ví dụ gridfs mongodb
Trình điều khiển MongoDB Node.js hiện hỗ trợ API dựa trên luồng cho GridFs tương thích với các luồng Node.js, do đó bạn có thể trực tiếp từ các luồng tệp đến MongoDB. Trong hướng dẫn này, bạn sẽ thấy cách sử dụng API phát trực tuyến GridFS mới để tải lên bản ghi âm 28 MB được cấp phép CC từ Richard Wagner, Opera Die Meistersinger von Nurnberg đến MongoDB bằng cách sử dụng các luồng. Được thiết lậpChức năng phát trực tuyến GRIDFS mới là một phần của bản phát hành 2.1.0 của trình điều khiển MongoDB Node.js. Để sử dụng nó, hãy đặt sự phụ thuộc sau trong 0 của bạn. Chúng tôi thực sự khuyên bạn không nên sử dụng các phiên bản từ GitHub trong sản xuất, nhưng nó rất tốt cho thử nghiệm.
Tải lên một tập tinBạn có thể sử dụng GridFs để tải tệp lên MongoDB. Ví dụ này giả định rằng bạn có một tệp có tên 1 trong thư mục gốc của dự án của bạn. Bạn có thể sử dụng bất kỳ tệp nào bạn muốn hoặc bạn chỉ có thể tải xuống một meistersinger die mp3.Để sử dụng API phát trực tuyến API, trước tiên bạn cần tạo 2.
Xô có phương thức 3 tạo luồng tải lên cho một tên tệp đã cho. Bạn có thể đặt một nút.js 4 Đọc luồng vào luồng tải lên.
Giả sử rằng cơ sở dữ liệu 5 của bạn trống, bạn sẽ thấy rằng tập lệnh trên đã tạo 2 bộ sưu tập trong cơ sở dữ liệu 5 của bạn: 7 và 8. Bộ sưu tập 8 chứa siêu dữ liệu cấp cao về các tệp được lưu trữ trong thùng này. Chẳng hạn, tệp bạn vừa tải lên có một tài liệu trông giống như những gì bạn thấy dưới đây.
Tài liệu trên chỉ ra rằng tệp được đặt tên là ‘meistersinger.mp3, và cho bạn biết kích thước của nó bằng byte, khi nó được tải lên và md5 của nội dung. Ngoài ra, còn có một trường 0 chỉ ra rằng tệp được chia thành các khối có kích thước 255 kilobyte, là mặc định.
Không có gì đáng ngạc nhiên, 27847575⁄261120 là khoảng 106,64, do đó, bộ sưu tập 7 chứa 106 khối với kích thước 255kb và 1 khối mà khoảng 255kb * 0,64. Mỗi tài liệu khối cá nhân tương tự như tài liệu dưới đây.
Tài liệu chunk theo dõi tệp nào thuộc về và thứ tự của nó trong danh sách các khối. Tài liệu chunk cũng có trường 2 chứa các byte thô của tệp.Bạn có thể định cấu hình cả kích thước chunk và tiền tố 4 cho các bộ sưu tập các tệp và khối ở cấp độ xô. Chẳng hạn, nếu bạn chỉ định các tùy chọn 4 và 5 như được hiển thị bên dưới, bạn sẽ nhận được 27195 khối trong bộ sưu tập 6.
Tải xuống một tập tinXin chúc mừng, bạn đã tải thành công một tập tin lên MongoDB! Tuy nhiên, một tập tin ngồi trong MongoDB là đặc biệt hữu ích. Để truyền phát tệp vào ổ cứng của bạn, phản hồi HTTP hoặc các mô -đun NPM như loa, bạn sẽ cần một luồng tải xuống. Cách dễ nhất để có được luồng tải xuống là phương thức 7.
Bây giờ, bạn có một tệp 8 mà một bản sao của tệp 1 gốc. Luồng tải xuống cũng cho phép bạn thực hiện một số thủ thuật gọn gàng. Chẳng hạn, bạn có thể cắt bỏ phần đầu của bài hát bằng cách chỉ định một số byte để bỏ qua. Bạn có thể cắt bỏ 41 giây đầu tiên của MP3 và bỏ qua ngay phần hay của bài hát như được hiển thị bên dưới.
Một điểm quan trọng cần lưu ý về hiệu suất là API phát trực tuyến GridFS có thể tải các khối một phần. Khi một luồng tải xuống cần kéo một đoạn từ MongoDB, nó sẽ kéo toàn bộ khối vào bộ nhớ. Kích thước chunk mặc định 255 kilobyte thường là đủ, nhưng bạn có thể giảm kích thước khối để giảm chi phí bộ nhớ. Tiến lênXin chúc mừng, bạn đã sử dụng các luồng MongoDB và Node.js để lưu trữ và thao tác tệp .mp3. Với GridFS, bạn có một hệ thống tệp với tất cả các tính năng mở rộng theo chiều ngang của MongoDB. Nó cũng có API dựa trên luồng mà bạn có thể sử dụng cho các tệp 0 đến và từ MongoDB.
|