Я знаю, что это было затронуто в this post, но я надеялся на некоторое разъяснение об этом.API Dropbox, переименование и уникальные идентификаторы
В настоящее время с Dropbox Core API, похоже, нет способа отслеживать файлы, которые были переименованы. Например, если вы используете API для синхронизации Dropbox app_folder с локальным каталогом приложений. Вы переименовать файл на стороне Dropbox, а затем вызвать delta
, чтобы увидеть, как вы должны обновить локальный каталог приложений, вы вернулись две записи ...
array(
0 => '/somefile.txt',
1 => null
),
array(
0 => '/somefile-renamed.txt',
1 => array(
'revision' => 343
'rev' => 'd90se4c661'
'thumb_exists' => false
'bytes' => 1263
'modified' => 'Tue, 09 Apr 2013 19:06:39 +0000'
'client_mtime' => 'Tue, 09 Apr 2013 18:43:06 +0000'
'path' => string '/somefile-renamed.txt'
'is_dir' => false
'icon' => 'page_white_text'
'root' => 'app_folder'
'mime_type' => 'application/octet-stream'
'size' => '1.2 KB'
)
)
Для каждого массива вернулся, первый элемент файла для которого требуется обновление, а второй элемент - это информация метаданных файла. Если второй элемент равен null
, вы должны удалить свою локальную версию (и все, что под ней, если это каталог) этого файла.
Итак, в приведенном выше примере он сообщает вам удалить первый файл и загрузить этот совершенно новый файл. К сожалению, нет способа отследить, что этот новый файл, который вам сказали создать, на самом деле просто переименованную версию файла, который вам сказали удалить. С точки зрения вашего приложения (сторона, отличная от Dropbox), это просто похоже на удаление пролива и появление нового файла.
Это может быть проблематично, если вы храните данные в этих файлах в другом месте (например, в базе данных), и вам нужно обновить запись вместо создания новой записи и удаления старой.
Есть ли принятый способ отслеживания ассоциации файлов после переименования? Кажется, я не могу найти способ сделать это, используя метаданные, дельта или ревизии.
Да, в какой-то момент я пытался определить это, сохранив хэш содержимого файла, но он был серьезно взломан, поэтому я [отступил] (http://www.youtube.com/watch?v=2iE4uEsaBF0&feature= youtu.be & t = 10s) из этого решения. – wlvrn
API имеет метод «move»: https://www.dropbox.com/developers/core/docs#fileops-move Сделайте с ним то, что вы будете =) – Rudie