VẤN ĐỀCouchDB On-the-fly file đính kèm thông qua dòng lệnh
Tôi muốn để có thể đính kèm một/nhiều tập tin đính kèm (s) như các tài liệu được tạo ra, thông qua các dòng lệnh (xem dưới đây) . Tôi chỉ có thể có được điều này để làm việc trong Futon (Couchbase), nhưng chỉ sau khi một tài liệu đã được tạo ra.
Tôi đã thử những điều sau đây:
curl -X PUT 'http://username:[email protected]:5984/client_info'
curl -X POST 'http://username:[email protected]:5984/client_info' -H 'Content-Type: application/json' -d '{"client_type": "Private", "client_name": "John Doe","client_email": "[email protected]","client_city": "Toronto","created_at": "2011-09-06 12:45:03","expires_at": "2012-01-01 00:00:00", "_attachments": {
"test01.jpg": {
"content_type": "image/jpeg",
"length": 30189
}
}
}'
này chỉ kết quả trong các lỗi sau:
{"error":"unknown_error","reason":"function_clause"}
Cảm ơn
Vì vậy, trước tiên tôi cần tạo tài liệu, nhận _rev và sau đó sử dụng PUT để cuối cùng đính kèm hình ảnh? Tại sao không thể thực hiện việc này đồng thời? Điều gì sẽ xảy ra nếu thông tin tôi muốn nhập từ biểu mẫu đăng ký, nơi người dùng có khả năng tải lên một hoặc nhiều hình ảnh? Tôi sẽ đi đâu để tới đó? – EdvardG
Nếu bạn đang tìm kiếm một lưu trữ có khả năng mở rộng cao cho các đối tượng nhị phân viết vào một cái gì đó giống như một thùng đồng thời, CouchDB có thể không phải là lựa chọn đầu tiên của bạn. Vẫn còn một số giải pháp cho sự cố của bạn: Lưu trữ các bản sao cục bộ của các hình ảnh được tải lên cục bộ và xếp hàng chúng để tải lên liên tục. Ngoài ra, lưu trữ từng hình ảnh trong một tài liệu riêng biệt (cho phép tải lên song song) và chỉ thêm các _ids của tài liệu hình ảnh trong tài liệu người dùng của bạn. Để làm mọi thứ trong một yêu cầu: Base64 mã hóa hình ảnh của bạn và đưa chúng vào tài liệu JSON của bạn (xấu về hiệu suất). –
Nếu bạn gặp lỗi: "không tìm thấy kết quả phù hợp: ...", hãy đặt url vào dấu ngoặc kép: curl -v -X PUT 'http://127.0.0.1:5984/albums/6e1295ed6c29495e54cc05947f18c8af/artwork.jpg? rev = 2-2739352689 '--data-binary @ artwork.jpg -H "Kiểu nội dung: hình ảnh/jpg" – Andriy