Google drive api 使用api更改原始文件名和标题或更改原始文件名

Google drive api 使用api更改原始文件名和标题或更改原始文件名,google-drive-api,Google Drive Api,从: 如果文件是手动上载的,则为原始文件名,或者 如果文件是通过API插入的,则为原始标题。注意 重命名标题不会更改原始文件名。这将 只能在包含存储在驱动器中的内容的文件上填充 我想插入一个具有标题和不同原始文件名的文件。根据(我的解释)文档,这将是一个两步方法,首先插入标题应成为原始文件名的文档,然后执行修补程序以更改标题。这需要两个步骤来区分标题和原始文件名。这还意味着不能使用API更改原始文件名 我是否遗漏了什么?是否有更好的方法来设置原始文件名?实际上,即使在执行insert()然后pa

从:

如果文件是手动上载的,则为原始文件名,或者 如果文件是通过API插入的,则为原始标题。注意 重命名标题不会更改原始文件名。这将 只能在包含存储在驱动器中的内容的文件上填充

我想插入一个具有标题和不同原始文件名的文件。根据(我的解释)文档,这将是一个两步方法,首先插入标题应成为原始文件名的文档,然后执行修补程序以更改标题。这需要两个步骤来区分标题和原始文件名。这还意味着不能使用API更改原始文件名


我是否遗漏了什么?是否有更好的方法来设置原始文件名?

实际上,即使在执行insert()然后patch()时,我也无法让originalFilename返回。当文档中说“如果文件是手动上传的”时,我相信这是指用户通过驱动器Web UI上传文件


您最好在其他属性(如indexableText或description)中记录原始文件名。

当Google drive中的实际文件名不同时,我们希望将上载的修订文件的原始文件名保留在历史记录列表中

我们希望GoogleDrive文件以静态名称命名,并且历史记录列表中的所有修订都在文件名中包含日期

没有直接的功能可以通过GoogleDrive API实现这一点

脑海中浮现的自然现象是通过API更新修订版的originalFilename字段(我们使用带有模块“googleapis”v3的NodeJS)

因此,原来originalFilename字段在revisions.update上是可识别的,但不知何故不可更新-出于某种原因,可能是故意这样做的

我们使用的解决方案实际上实现了我们最初的目标,即以编程方式:

  • 在上载修订之前,将google drive文件重命名为修订的文件名
  • 将修订上载到google驱动器(现在修订的原始文件名将自动设置为实际文件名,我们在上一步方便地将其重命名为修订文件名)
  • 将google驱动器文件重命名为其原始文件名
  • 因此,如果我们有名为“GooleDriveFile.dat”的google驱动器文件,并且我们希望上载名为GooleDriveFile_01012016.dat的修订版,并将原始修订版名称保留在历史记录列表中,我们可以通过编程方式:

    1->将google驱动器文件从GooleDriveFile.dat重命名为GooleDriveFile_01012016.dat

    service.files.update(
          {
              fileId : <fileId>,
              resource: {
                   name: "GooleDriveFile_01012016.dat",
              },
              fields :  "id,headRevisionId"
          } 
    ) 
    
    service.files.update(
    {
    文件ID:,
    资源:{
    名称:“GooleDriveFile_01012016.dat”,
    },
    字段:“id,头版本id”
    } 
    ) 
    
    2->将修订版上传到谷歌硬盘

    service.files.update(
       {
            fileId : <fileid>,
            newRevision : true,
            keepRevisionForever : true,
            media: {
                body: fs.createReadStream(<local path to the revision file>)  
            },
            fields : "id,headRevisionId"
        }
    )
    
    service.files.update(
    {
    文件ID:,
    是的,
    永远保持预见:真的,
    媒体:{
    正文:fs.createReadStream()
    },
    字段:“id,头版本id”
    }
    )
    
    3->将google驱动器文件重命名回“GooleDriveFile.dat”

    service.files.update(
    {
    文件ID:,
    资源:{
    名称:“GooleDriveFile.dat”,
    },
    字段:“id,头版本id”
    } 
    ) 
    
    插入一个文件,用补丁更改标题,然后再次获取该文件对我来说很有用。修补程序请求返回的文件不包含原始文件名,但包含新文件()。获取它。使用描述不是我的选择。我已经使用了可索引文本,但是当我通过索引找到一个文档时,可能会在结果中获得更多文档,因此我希望使用原始文件名来确保获得正确的文档。
    service.files.update(
          {
              fileId : <fileId>,
              resource: {
                   name: "GooleDriveFile_01012016.dat",
              },
              fields :  "id,headRevisionId"
          } 
    ) 
    
    service.files.update(
       {
            fileId : <fileid>,
            newRevision : true,
            keepRevisionForever : true,
            media: {
                body: fs.createReadStream(<local path to the revision file>)  
            },
            fields : "id,headRevisionId"
        }
    )
    
    service.files.update(
          {
              fileId : <fileId>,
              resource: {
                   name: "GooleDriveFile.dat",
              },
              fields :  "id,headRevisionId"
          } 
    )