2012-10-06 9 views
13

Chúng tôi biết rằng khách hàng dùng máy tính để bàn Dropbox sử dụng thuật toán nhị phân khác để chia nhỏ tất cả các tệp thành các khối và chỉ tải lên các khối mà nó chưa có trong đám mây (https://serverfault.com/questions/52861/how-does-dropbox-version-upload-large-files).Tải lên khác biệt/tải lên gia tăng bằng cách sử dụng REST API

Tuy nhiên, API Dropbox, theo như tôi thấy, chỉ có thể tải lên toàn bộ tệp (/files_put, /files (POST)) khi cần đồng bộ hóa.

Có cách nào để thực hiện đồng bộ hóa/gia tăng bằng cách sử dụng API Dropbox, tức là chỉ tải lên phần đã thay đổi của tệp như ứng dụng khách trên máy tính để bàn không?

Nếu điều này là không thể, thì thực tiễn tốt nhất để đồng bộ hóa định kỳ các tệp lớn có thay đổi nhỏ bằng cách sử dụng API Dropbox là gì?

+0

Câu hỏi hay - bạn đã bao giờ tìm thấy câu trả lời chưa? – DoctorG

+0

Thật không may là không. Tôi sẽ quay lại bài đăng này nếu tôi tìm thấy bất cứ điều gì có liên quan. –

+0

AFAIK, bạn có thể tải xuống tệp theo các khối sử dụng yêu cầu truy xuất phạm vi HTTP (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.2) API HTTP Dropbox hỗ trợ nó (ít nhất là để tải xuống tệp), không chắc chắn về việc tải lên. Xem thêm chi tiết về/tệp (GET) phương pháp: https://www.dropbox.com/developers/core/docs –

Trả lời

4

Thật không may điều này là không thể và tôi nghi ngờ rằng nó có thể không bao giờ có sẵn.

Sau khi thực hiện một số nghiên cứu, tôi đã tìm thấy yêu cầu tính năng for delta-syncing to be integrated into the API. Dropbox đã không trả lời, cũng như không có cộng đồng upvoted yêu cầu này.

Tôi sẽ làm cho một nhà giáo dục đoán rằng lý do tại sao Dropbox không cung cấp chức năng này, và có khả năng sẽ không bao giờ, là bởi vì đây là một tính năng nguy hiểm trong tay các nhà phát triển không rõ.

Hãy xem xét trường hợp bạn viết một ứng dụng sử dụng hệ thống cập nhật thay đổi delta để cập nhật các tệp lớn. Bạn kiểm tra kỹ lưỡng ứng dụng của mình và xuất bản ứng dụng đó lên cửa hàng ứng dụng. Một vài tuần sau lần phát hành đầu tiên của bạn và nhiều lượt tải xuống, bạn bắt đầu nhận được các đánh giá và khiếu nại xấu vì bạn đã bỏ lỡ một trường hợp thử nghiệm rất cụ thể.

Trong trường hợp lỗi cụ thể này, bạn đã tính sai số chênh lệch chênh lệch 1 byte. Ồ không! Bây giờ bạn đã hỏng hàng nghìn tệp, cho hàng trăm người dùng!

Xem xét khả năng như vậy, tôi nghĩ rằng cá nhân tôi sẽ yêu cầu Dropbox KHÔNG BAO GIỜ cung cấp tính năng dev như vậy. Nếu họ tích hợp chức năng như vậy vào API, họ sẽ phá vỡ mục đích số 1 của họ - để cung cấp bản sao lưu đám mây đáng tin cậy, an toàn, phù hợp, & của các tệp quan trọng của bạn.

+3

Tôi không đồng ý với kết luận của bạn: có thể phạm sai lầm không phải là lý do không cung cấp chức năng như vậy. Bạn không thể (và không nên) các nhà phát triển babysit. Miễn là bạn không làm mọi thứ nguy hiểm, và cung cấp những cảnh báo tốt đẹp và dư khi mọi thứ có thể nguy hiểm, thì tôi không thấy vấn đề gì trong việc cung cấp một thứ như thế này. –