19 votes

Peut-on observer la progression de la synchronisation iCloud ?

J'ai configuré mon Mac sous OS X 10.8 de manière à pouvoir voir le contenu de son dépôt iCloud à l'adresse suivante ~/Library/Mobile Documents (voir cette question y cette question pour plus d'informations sur la façon dont cela fonctionne). Cependant, j'aimerais pouvoir voir / visualiser / comprendre l'état de synchronisation de mon Mac :

  • Mon Mac est-il synchronisé avec iCloud ?
  • Si non, qu'est-ce qui est téléchargé / téléchargé / combien de temps cela va-t-il prendre ?
  • Y a-t-il des services publics ou des fonctions intégrées d'OS X qui me permettraient de voir tout cela ?

Ce sont des questions valables même si iCloud n'est pas explicitement exposé dans le système de fichiers, mais elles sont évidemment plus utiles si vous copiez explicitement un grand nombre de fichiers dans/hors du dépôt iCloud.

5voto

Graham Miln Points 39606

Il n'existe pas d'outils intégrés à OS X conçus explicitement pour vous montrer les informations de synchronisation iCloud.

Depuis OS X 10.8.2, Apple n'a pas rendu ces informations publiques. À moins qu'Apple ne publie des interfaces de programmation d'applications (API) OS X pour fournir les informations que vous recherchez, aucun tiers ne sera en mesure de fournir avec précision les détails de la synchronisation.

Compte tenu de ce qui précède, veuillez donnez votre avis à l'équipe iCloud d'Apple ; faites savoir aux ingénieurs d'Apple ce que vous voulez et pourquoi.

Pendant que vous attendez, vous pouvez suivre les connexions aux serveurs iCloud d'Apple, mesurer le flux de trafic et l'accès aux disques. Ces mesures vous donneront un aperçu de la situation, mais elles ne vous permettront pas de connaître les durées prévues ou le pourcentage de réussite.

Pour explorer le flux de données, exploitez les outils intégrés de l'OS X comme lsof y netstat .

2 votes

Merci pour la réponse. Je m'en doutais, mais j'espérais que quelqu'un d'autre avait déjà inversé le flux de trafic, créé un outil, etc.

3voto

Graham Perrin Points 7373

Activité

La commande suivante, exécutée lors de l'utilisation d'iCloud avec des applications (telles que Smultron 4 et TextEdit) qui prennent en charge les documents mobiles, est la suivante : 1.

sudo opensnoop -n ubd

- montre les fichiers locaux ouverts par le démon ubiquity. Les fichiers incluent les bases de données, une base de données par pair. Un répertoire par pair au chemin suivant :

~/Library/Application Support/Ubiquity

Types de données

Si vous souhaitez mesurer les progrès, décidez des types de mesures à effectuer :

  • Données de base
  • documents
  • clé-valeur.

Sauvegardes, progrès et mesures

Données de base

Les fichiers du journal des modifications, et non le fichier de stockage, sont téléchargés vers iCloud et téléchargés sur chacun des autres appareils de l'utilisateur. Lorsqu'un journal des modifications de modification arrive d'un autre appareil rattaché au même compte iCloud, Core Data met à jour la copie locale de la base de données SQLite de votre application, en fonction des éléments suivants sur la base du journal des modifications reçu. iCloud et Core Data veillent à ce que chaque base de données locale soit mise à jour avec le même ensemble de données. base de données locale est mise à jour avec le même ensemble de modifications. 

Réfléchissez : sans interpréter le contenu d'un journal des modifications, sera-t-il utile de mesurer la progression du téléchargement du fichier journal ?

Documents

Dans la bibliothèque du développeur Mac :

Les applications basées sur les documents peuvent adopter l'enregistrement automatique en place, et ses documents sont automatiquement sauvegardés aux moments opportuns

Aussi :

Les stratégies automatiques de sauvegarde des données soulagent l'utilisateur

les points appropriés dans votre code où toute modification liée à l'utilisateur doivent être sauvegardés et écrire ces changements sur le disque automatiquement. 

Quelques moments appropriés où vous pouvez sauvegarder automatiquement les données de l'utilisateur sont les suivants :

  • Lorsque l'utilisateur ferme la fenêtre de l'application ou quitte l'application (applicationWillTerminate :)
  • Lorsque l'application est désactivée (applicationWillResignActive :)
  • Quand l'utilisateur cache votre application (applicationWillHide :)
  • Chaque fois que l'utilisateur apporte un changement valide aux données dans votre application.

Le dernier point signifie que vous avez la liberté de sauvegarder les données de l'utilisateur. à chaque fois que cela s'avère utile. Par exemple, si l'utilisateur est modifie les champs d'un enregistrement de données, vous pouvez enregistrer chaque chaque valeur de champ au fur et à mesure qu'elle est modifiée, ou vous pouvez attendre et enregistrer tous les champs lorsque l'utilisateur affiche les données. un nouvel enregistrement. Ces types de modifications incrémentielles garantissent que que les données sont toujours à jour, mais elle nécessite une gestion plus fine de votre modèle de données. gestion plus fine de votre modèle de données. 

Pensez-y : ces économies peuvent être si fréquentes, et les montants si faibles, que la mesure n'en vaut pas la peine.

item-info.db

J'ai joué avec Navigateur de bases de données SQLite pour parcourir le item-info.db pour le pair qui semble être mon Mac local. Comme je le soupçonnais, l'application ne pouvait naviguer que lorsque le système n'utilisait pas la base de données. Untitled.png dans iCloud, je ne pouvais plus parcourir la base de données et ainsi de suite.

Références

Guide de conception iCloud

Guide de programmation des applications Mac : The Core App Design :

0 votes

C'est très bien, merci. La commande que vous donnez ne produit pas un résultat particulièrement convivial (et n'aborde pas vraiment l'état insync/out-of-sync, l'état upload/download, etc.), mais c'est plus proche que tout ce qui a été fait jusqu'à présent.

0 votes

Merci - en théorie, nous pourrions faire plus avec des commandes basées sur DTrace telles que iosnoop mais tout ce qui concerne DTrace ne fonctionne pas parfaitement sous OS X. Je suis également curieux de savoir ce qui n'est pas couvert par cette réponse.

1voto

Greg Cain Points 2933

Si vous voulez VRAIMENT voir ce qui se passe, vous pouvez utiliser tcpdump (/usr/sbin/tcpdump), qui fait de la capture de paquets. Il vous montrera les paquets au fur et à mesure qu'ils passent sur le réseau. Ce n'est pas le plus simple, mais c'est le moyen le plus complet de voir ces données.

0 votes

Une idée des ports à examiner ? A mon avis, au moins 80, 443, et 5223. Pour inclure le courrier électronique, ajoutez 25, 587, et 993.

1voto

biffom Points 1

L'exécution de la commande suivante dans le terminal semble faire l'affaire pour moi :

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

La commande lsof donne le résultat suivant :

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

il suffit de le refaire (flèche vers le haut et appuyer sur retour) et vous devriez le voir changer.

0 votes

Où exécutez-vous cette commande ? À quoi ressemble la sortie ?

0 votes

Depuis le terminal.

1 votes

Vous n'avez pas besoin de cd ~/Pictures. Je ne sais pas pourquoi patrix a édité cela ?

1voto

user1134918 Points 45

À partir de OS X 10.11 (si ce n'est pas 10.10), si un sous-dossier de votre lecteur iCloud est ouvert dans le Finder pendant que vous modifiez des fichiers dans iCloud, et que la barre d'état de cette fenêtre est activée, le Finder vous indique le nombre de fichiers en cours de synchronisation et la quantité de données transférées jusqu'à présent.

0 votes

Dans OSX 10.13.6, je ne vois pas ces informations dans la barre d'état. En revanche, je vois un petit cercle à côté de l'icône iCloud du Finder dans la barre latérale. Je peux cliquer dessus pour obtenir des informations sur les données transférées.

0 votes

Voir la capture d'écran : la barre d'état (-/ pour afficher) située en bas de la fenêtre devrait afficher la progression de la synchronisation avec iCloud, tant que vous êtes dans une fenêtre du Finder qui se trouve dans la hiérarchie de votre dossier iCloud Drive.

0 votes

Il semble que les images ne soient pas intégrées dans les commentaires, mais voir i.imgur.com/deKecx9.png

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X