应用程序脚本saveAttachment脚本保存异常在CentOS上访问时的权限

时间:2018-08-30 15:59:11

标签: google-apps-script centos centos7 google-apps

我有一个应用脚本,可以自动保存我希望每天收到的某些电子邮件中的电子邮件附件。

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-drive-ocamlfuse将此google驱动器连接到CentOS服务器,因为我需要保存的附件才能每天运行脚本。

直到几天前,我还没有遇到权限问题。

$ 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将文件移到服务器上并移到正确的文件夹中,然后我的脚本即可运行。

有什么理由会发生这种情况吗?是否有解决此问题或解决此问题的建议,以便我可以继续自动化?

谢谢。

0 个答案:

没有答案