标记为keepForever的修订版不会保留正确的文件内容

时间:2016-12-12 02:19:57

标签: google-drive-api

云端硬盘revisions文档指出,在修订版中设置keepForever属性将“永久保留修订版,即使它不再是版本修订版”。

根据所描述的功能,我正在创建一个新的二进制文件并将keepForever属性设置为true。然后,我上传同一文件的新版本,并为新版本设置keepForever为true。尽管在第一个修订版上设置了keepForever,但第一个修订版的文件内容不会保留;它们已更改为最近上传的修订版。

我是否误解了keepForever的功能,或者我描述的问题不是预期的功能,即错误?

以下是演示此问题的文件的可公开访问的文件ID和修订ID。修订版1的内容应为file 1,修订版2的内容应为file 2,但这两个版本都包含file 2

GET https://www.googleapis.com/drive/v3/files/0ByY6IA02pFulZG50RFRFQ2tHWms/revisions


{ revisions: 
   [ { id: '0ByY6IA02pFulOEZWN0dGYlMrOHVVNStPL21kR1N2WnhaSExRPQ',
       modifiedTime: '2016-12-12T01:40:08.744Z',
       keepForever: true },
     { id: '0ByY6IA02pFulNGh1MVFEWmlUM1RtRWUrMkswNjk3Y3pMZ25BPQ',
       modifiedTime: '2016-12-12T01:40:23.356Z',
       keepForever: true } ] }

使用node.js request模块,这是正在发出的HTTP请求:

request({
    method : 'PATCH',
    headers : {
        'Content-Type' : 'application/octet-stream'
    },
    url : `https://www.googleapis.com/upload/drive/v3/files/0ByY6IA02pFulZG50RFRFQ2tHWms`,
    qs : {
        uploadType : 'media',
        keepRevisionForever : true
    },
    body : fileStream
})

1 个答案:

答案 0 :(得分:0)

创建和更新二进制文件时,我认为您需要设置文件资源属性:keepRevisionForever。请注意,这与相关修订属性的名称不同:keepForever

keepRevisionForever默认为false,是V3 Drive API createupdate请求中记录的可选查询参数。