Скрипт приложения saveAttachment сохраняет скрипт с помощью странных ??? разрешения при доступе на CentOS - PullRequest
0 голосов
/ 30 августа 2018

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

function saveAttachments(query, folderName) {
    // Get Folder from Drive to save files to
    var folder = DriveApp.getFoldersByName(folderName).next();

    // Query the email
    var threads = GmailApp.search(query);

    var messages = threads[0].getMessages();
    var message = messages[0];
    var mDate = message.getDate();
    var body = 'File received at ' + mDate.toString();

    //Save the attachment to the folder
    var attachments = message.getAttachments();
    var attach = attachments[0]; 
    var gdriveFile = folder.createFile(attach);

    message.markRead();

    return body;
}

Я подключил этот google-диск к моему CentOS-серверу с помощью google-drive-ocamlfuse, потому что мне нужно это сохраненное вложение для запуска сценария каждый день.

Еще пару дней назад у меня никогда не было проблем с разрешениями.

$ ll
-rw-rw-r--. 1 user1 user1 5.9K Aug  9 20:51 oldFile1.csv
-rw-rw-r--. 1 user1 user1 6.0K Aug 10 12:42 oldFile2.csv
-rw-rw-r--. 1 user1 user1 6.0K Aug 11 13:09 oldFile3.csv
-rw-rw-r--. 1 user1 user1 8.0K Aug 12 15:04 oldFile4.csv

Затем, внезапно, когда файл был сохранен (с использованием того же скрипта; больше ничего не было изменено), разрешения показались как ???????????, что привело к сбою моих скриптов.

$ ll
-rw-r--r--. 1 user1    user1    8.1K Aug 29 14:18 file1.csv
-rw-------. 1 root     root     8.1K Aug 30 13:39 file2.csv
??????????? ? ?        ?           ?            ? newly_added_file.csv

Эта проблема возникает только при сохранении файла с использованием сценария приложения. Когда я заметил это, я сделал следующее:

  1. Перейдите в папку на gdrive, удалите файл.
  2. Перейти в корзину на gdrive, удалить файл.
  3. Перейдите на электронную почту и вручную сохраните файл в нужную папку.

Однако произойдет сбой, и мне будет показано следующее сообщение:

There was an error saving the attachment to Google Drive.

Это произошло только для этого файла из этого письма. Если бы я сделал копию файла на диске Google, разрешения выглядели бы нормально.

$ ll
-rw-r--r--. 1 user1    user1    8.1K Aug 31 13:39 Copy of newly_added_file.csv
??????????? ? ?        ?           ?            ? newly_added_file.csv

Итак, в Google Диске я удалил исходный файл, переименовал копию в оригинал и снова проверил на своей машине и ОПЯТЬ, фанк-разрешение!

$ ll
??????????? ? ?        ?           ?            ? newly_added_file.csv

Затем я попытался сохранить файл локально на моем компьютере, затем использовал scp, чтобы переместить файл на сервер и в нужную папку, и мой сценарий смог запустить.

Есть ли причина, по которой это могло бы произойти? Есть ли какие-либо предложения, чтобы исправить эту проблему или обойти эту проблему, чтобы я мог продолжить свою автоматизацию?

Спасибо.

...