В обновлении файла API Google Drive появилась новая ошибка

У меня есть приложение, работающее на Android и использующее Java Drive Drive SDK для отправки копии его внутренней базы данных в формате XML в связанную учетную запись Google Drive. Чтобы обновить файл, вот что сделано. Сначала файл объект. извлекается из заданного известного идентификатора файла (соответствующего XML-файлу в Google Диске):

final File tmpfile = driveService.files().get(mapperID).execute();
tmpfile.setTitle(XML_FILENAME);
tmpfile.setDescription(XML_FILEDESCRIPTION);
tmpfile.setModifiedByMeDate(new DateTime(System.currentTimeMillis()));
tmpfile.setMimeType(XML_MIMETYPE);
//Note: fileBuilder.srcFile contains a byte array of the binary content to be pushed to Drive
mediaContent = new ByteArrayContent(XML_MIMETYPE, fileBuilder.srcFile); 
File tmpResFile = driveService.files().update(mapperID,tmpfile, mediaContent).execute();

... где mapperID - это строка идентификатора, извлеченная из объекта HashMap, содержащая список всех идентификаторов файлов, имеющих отношение к Google Диску, fileBuilder.srcFile - объект, не являющийся нулевым байтом [].

До 22 апреля 2014 года, в 5 часов утра по восточному поясному времени, этот фрагмент кода работал отлично и без устали и обновлял XML-файл, находящийся на Google Диске, который содержит копию локальной базы данных SQLITE, используемой приложением, но в удобочитаемом виде. и HTML-анализируемый формат.

То, что происходило в эту дату и час одновременно на всех наших тестовых сайтах, будь то на канадской или американской стороне, было следующим: измененная временная метка файла постоянно корректно обновлялась до currentTimeMillis (), но двоичное содержимое файла осталось таким же, как и последнее действительное обновление (т.е. в течение нескольких минут 2014-04-22 05: 00.00 EST).

Единственный способ устранить эту проблему - полностью стереть идентификатор файла, соответствующий этому XML-файлу, либо через API, либо вручную, сбросив файл в корзину, а затем очистить корзину. Обратите внимание, что если файл просто перемещается в корзину, эта проблема продолжает появляться. Это не может быть из-за того, что мы изменили файл в корзине (или он так выглядит), потому что мы пытались перезапустить приложение несколько раз, и при перезапуске (и после любого сбоя Google Диска, если на то пошло) приложение переходит в «медленное». режим сканирования "и восстанавливает всю файловую иерархию с помощью запроса Google Диска ко всем файлам в соответствующей папке с установленными ниже флагами Q-строки:

trashed = false and hidden = false

И если это действительно так, то я предполагаю, что мы не увидим обновленные метки времени в главной папке, содержащей файл XML, который мы видели. Более того, не выбрасывая что-либо в корзину вручную, мы видим, что метка времени файла обновляется до currentTimeMillis (), как и ожидалось, но ее содержимое остается устаревшим, пока мы не очистим диск с помощью полного удаления файла.

Прямо сейчас, мы находимся в контроле за ущербом для этого, но было бы хорошо, если бы это было что-то, что может быть легко решено на стороне сервера, вместо того, чтобы мы вручную проталкивали клиентские патчи повсюду ... И если есть коренная причина этого, любой патч с нашей стороны не решит эту проблему и только отсрочит неизбежное.

Есть идеи?

Ответы на вопрос(0)

Ваш ответ на вопрос