Tiến trình đồng bộ hóa iCloud có thể được quan sát không?


14

Tôi có máy Mac chạy OS X 10.8 được thiết lập để tôi có thể xem nội dung của kho lưu trữ iCloud của mình ~/Library/Mobile Documents(xem câu hỏi nàycâu hỏi này để biết thêm thông tin về cách hoạt động của nó). Tuy nhiên, tôi muốn có thể xem / hình dung / hiểu trạng thái đồng bộ hóa trên máy Mac của mình:

  • Máy Mac của tôi có đồng bộ với iCloud không?
  • Nếu không, những gì đang được tải lên / tải xuống / sẽ mất bao lâu?
  • Có bất kỳ tiện ích hoặc tính năng tích hợp nào của OS X sẽ cho phép tôi thấy bất kỳ thứ gì trong số này không?

Đây là những câu hỏi hợp lệ ngay cả khi không có iCloud được hiển thị rõ ràng trong hệ thống tệp, nhưng rõ ràng sẽ hữu ích hơn nếu bạn sao chép số lượng lớn tệp vào / ra khỏi kho lưu trữ iCloud một cách rõ ràng.

Câu trả lời:


2

Hoạt động

Lệnh sau, chạy trong khi làm việc với iCloud với các ứng dụng (như Smultron 4 và TextEdit) hỗ trợ Tài liệu di động -

sudo opensnoop -n ubd

- hiển thị các tệp cục bộ được mở bởi trình nền phổ biến. Các tập tin bao gồm cơ sở dữ liệu, một cơ sở dữ liệu trên mỗi máy ngang hàng. Một thư mục trên mỗi đồng đẳng tại đường dẫn sau:

~/Library/Application Support/Ubiquity

Các loại dữ liệu

Nếu bạn muốn đo lường tiến độ, hãy quyết định loại nào cần đo:

  • Dữ liệu cốt lõi
  • các tài liệu
  • giá trị cốt lõi.

Lưu, tiến độ và đo lường

Dữ liệu cốt lõi

Các tệp nhật ký thay đổi, không phải tệp lưu trữ, được tải lên iCloud và được tải xuống từng thiết bị khác của người dùng. Khi nhật ký thay đổi đến từ một thiết bị khác được gắn vào cùng một tài khoản iCloud, Core Data sẽ cập nhật bản sao cơ sở dữ liệu SQLite của ứng dụng của bạn, dựa trên nhật ký thay đổi nhận được. iCloud và Core Data đảm bảo rằng mỗi cơ sở dữ liệu cục bộ được cập nhật với cùng một bộ thay đổi. Giáo dục

Xem xét: không diễn giải nội dung của nhật ký thay đổi, việc đo lường tiến trình tải lên tệp nhật ký có đáng không?

Các tài liệu

Trong Thư viện dành cho nhà phát triển Mac:

Các ứng dụng dựa trên Tài liệu có thể áp dụng tự động lưu tại chỗ và các tài liệu của nó được lưu tự động vào những thời điểm thích hợp.

Cũng thế:

Chiến lược tiết kiệm dữ liệu tự động giúp người dùng giảm bớt

Các điểm thích hợp trong mã của bạn trong đó mọi thay đổi liên quan đến người dùng sẽ được lưu và tự động ghi những thay đổi đó vào đĩa. Giáo dục

Một số thời điểm thích hợp khi bạn có thể tự động lưu dữ liệu người dùng bao gồm:

  • Khi người dùng đóng cửa sổ ứng dụng hoặc thoát khỏi ứng dụng (applicationWillTerminate :)
  • Khi ứng dụng bị hủy kích hoạt (applicationWillResignActive :)
  • Khi người dùng ẩn ứng dụng của bạn (applicationWillHide :)
  • Bất cứ khi nào người dùng thực hiện thay đổi hợp lệ cho dữ liệu trong ứng dụng của bạn

Mục cuối cùng có nghĩa là bạn có quyền tự do lưu dữ liệu của người dùng bất cứ lúc nào có ý nghĩa để làm như vậy. Ví dụ: nếu người dùng đang chỉnh sửa các trường của bản ghi dữ liệu, bạn có thể lưu từng giá trị trường khi nó được thay đổi hoặc bạn có thể đợi và lưu tất cả các trường khi người dùng hiển thị bản ghi mới. Thực hiện các loại thay đổi gia tăng này đảm bảo rằng dữ liệu luôn được cập nhật nhưng cũng yêu cầu quản lý chi tiết hơn cho mô hình dữ liệu của bạn. Giáo dục

Hãy xem xét: những khoản tiết kiệm đó có thể rất thường xuyên và số tiền quá nhỏ, phép đo đó sẽ không đáng giá.

mục-thông tin.db

Tôi đã chơi với Trình duyệt cơ sở dữ liệu SQLite để duyệt item-info.dbcơ sở dữ liệu cho máy ngang hàng có vẻ là máy Mac cục bộ của tôi. Như tôi nghi ngờ, ứng dụng chỉ có thể duyệt trong khi hệ thống không sử dụng cơ sở dữ liệu - trong vòng hai giây sau khi sử dụng Bản xem trước để chỉnh sửa Untitled.pngtrong iCloud, tôi không thể duyệt cơ sở dữ liệu nữa, v.v.

Người giới thiệu

Hướng dẫn thiết kế iCloud

Hướng dẫn lập trình ứng dụng Mac : Thiết kế ứng dụng cốt lõi:


Điều đó khá tốt, cảm ơn. Lệnh bạn đưa ra không tạo ra đầu ra đặc biệt thân thiện với người dùng (và thực sự không giải quyết trạng thái không đồng bộ / không đồng bộ, trạng thái tải lên / tải xuống, v.v.), nhưng nó gần hơn bất kỳ thứ gì khác cho đến nay.
Andrew Ferrier

Cảm ơn - về mặt lý thuyết, chúng tôi có thể làm nhiều hơn với các lệnh dựa trên DTrace, iosnoopnhưng không phải tất cả mọi thứ liên quan đến DTrace đều hoạt động hoàn hảo trên OS X. Tôi cũng tò mò về những điều không có trong câu trả lời này.
Graham Perrin

5

Không có công cụ OS X tích hợp nào được thiết kế rõ ràng để hiển thị cho bạn thông tin đồng bộ hóa iCloud.

Kể từ OS X 10.8.2, Apple chưa công khai thông tin này. Trừ khi Apple xuất bản Giao diện lập trình ứng dụng OS X (API) để cung cấp thông tin bạn tìm kiếm, không bên thứ ba nào có thể cung cấp chính xác các chi tiết đồng bộ hóa.

Vì điều này, vui lòng cung cấp phản hồi cho nhóm iCloud của Apple ; hãy cho các kỹ sư của Apple biết bạn muốn gì và tại sao.

Trong khi chờ đợi, bạn có thể theo dõi các kết nối đến máy chủ iCloud của Apple, đo lưu lượng truy cập và truy cập đĩa. Các số liệu này sẽ cung cấp một số thông tin chi tiết nhưng chúng sẽ không cung cấp thời lượng dự kiến ​​hoặc các biện pháp hoàn thành phần trăm.

Để khám phá luồng dữ liệu, hãy khám phá các công cụ tích hợp của OS X như lsofnetstat .


1
Cảm ơn câu trả lời. Đã đoán đây có thể là trường hợp nhưng tôi hy vọng ai đó đã điều chỉnh lưu lượng giao thông, xây dựng một công cụ, v.v.
Andrew Ferrier

1

Nếu bạn thực sự muốn xem những gì đang xảy ra, bạn có thể sử dụng tcpdump (/ usr / sbin / tcpdump), để chụp gói. Nó sẽ hiển thị cho bạn các gói khi chúng đi qua mạng. Đây không phải là cách dễ nhất, nhưng đó là cách toàn diện nhất để xem dữ liệu này.


Bất kỳ ý tưởng mà các cổng nên được xem xét? Tôi đoán là ít nhất 80, 443 và 5223, Để bao gồm email, hãy thêm 25, 587 và 993.
Marnix A. van Ammers

1

Kể từ OS X 10.11 (nếu không phải là 10.10), nếu bạn có bất kỳ thư mục con nào của iCloud Drive mở trong Finder trong khi thay đổi tệp trong iCloud và thanh trạng thái của cửa sổ đó được bật, Finder sẽ cho bạn biết có bao nhiêu tệp được đồng bộ hóa và bao nhiêu dữ liệu đã được chuyển cho đến nay.


Trong OSX 10.13.6 tôi không thấy thông tin đó trên thanh trạng thái. Tôi thấy một vòng tròn nhỏ bên cạnh biểu tượng iCloud của trình tìm kiếm trong thanh bên. Tôi có thể nhấp vào đó để có được một số thông tin về dữ liệu được chuyển.
Marnix A. van Ammer

Xem ảnh chụp màn hình - thanh trạng thái (-/ để hiển thị) chạy dọc phía dưới cửa sổ sẽ hiển thị tiến trình đồng bộ hóa với iCloud, miễn là bạn đang ở trong bất kỳ cửa sổ Finder nào nằm trong phân cấp của thư mục iCloud Drive .
dùng1134918

Có vẻ như hình ảnh sẽ không được nhúng trong các bình luận, nhưng hãy xem i.imgur.com/deKecx9.png
user1134918

0

Chạy các phần sau trong Terminal dường như là một mẹo nhỏ đối với tôi:

lsof | grep "Photos Library.photoslibrary/private/com.apple.cloudphotosd/CloudSync.noindex/Engine/filecache"

Lệnh lsof dẫn đến kết quả này:

cloudd    11237 carl   10r     REG                1,4   3009775 1460206 /Users/carl/Pictures/Photos Library.photoslibrary/private/com.apple.cloudphotosd/CloudSync.noindex/Engine/filecache/AYX/cplAYX8CMwjKIhIUqNRCwXobzKHe9iC.jpeg
cloudd    11237 carl   21r     REG                1,4   2465075 1460208 /Users/carl/Pictures/Photos Library.photoslibrary/private/com.apple.cloudphotosd/CloudSync.noindex/Engine/filecache/ATL/cplATLqV8CAvtA70qoJqZ21PimnEIPe.jpeg

chỉ cần phát hành lại (mũi tên lên và nhấn return) và bạn sẽ thấy nó thay đổi.


Bạn đang chạy lệnh này ở đâu? Đầu ra trông như thế nào?
Andrew Ferrier

Từ thiết bị đầu cuối.
biffom

1
Bạn không cần phải cd ~ / Hình ảnh. không chắc chắn tại sao patrix chỉnh sửa mà trong?
biffom

Bạn nói đúng, đọc sai ý định của bạn. OTOH, bạn có thể chỉnh sửa câu trả lời của mình để thêm nội dung bổ sung, không cần đăng bài thứ hai.
nohillside
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.