【问题标题】:Google Drive File Stream files creation dateGoogle 虚拟云端硬盘文件的创建日期
【发布时间】:2020-12-07 07:45:31
【问题描述】:

我知道它已经被问过几次了,但是 - 我认为不是在这种情况下,而且几年前已经问过其他问题,所以我希望可能会有所改变。

所以我的问题是 - 我正在使用 Google Drive File Stream 将文件上传到 Google Drive。但是,虽然上传顺利,但文件创建日期有问题 - 它总是更改为文件上传时间的时间戳,而不是实际的本地文件创建日期。这是一个严重的问题,因为我将使用它来备份大量数据并保留我可以保存的所有元数据,并且创建日期至关重要。有没有办法在创建日期不变的情况下上传它,或者在上传后更改它?从我所见,这似乎是不可能的,但我必须努力让它发挥作用。任何帮助和见解将不胜感激。我正在使用带有 Python 的虚拟云端硬盘。

编辑:我说得不够清楚 - 这里的问题是我根本不想使用 Google Drive API,而是尽可能只使用 Google Drive File Stream 接口来处理这个问题。

【问题讨论】:

    标签: python-3.x google-drive-file-stream


    【解决方案1】:

    创建

    如果您查看files.create 的文档,您会发现可接受的文件创建元数据确实包含 createdTime 然后,您应该将其添加到您在上传文件时使用的元数据中。由于您没有发布代码,因此我从文档中获取了标准示例并添加了创建时间,如下所示。

    file_metadata = {'name': 'photo.jpg', 'createdTime': 'THETIME'}
    media = MediaFileUpload('files/photo.jpg', mimetype='image/jpeg')
    file = drive_service.files().create(body=file_metadata,
                                        media_body=media,
                                        fields='id').execute()
    print 'File ID: %s' % file.get('id')
    

    更新

    如果你想更新你已经创建的,你可以使用下面的方法。

    如果您查看文件创建的文档,您会发现响应只是一个File resource

    如果你检查文件资源,你会发现 CreatedTime 是可写的。

    您应该运行 file.update 并将 createdTime 重置为正确的时间。

    【讨论】:

    • 嘿,感谢您的回答,但我忘了提到一件重要的事情 - 我想完全从 Google Drive File Stream 端来做这件事。我在我的应用程序中使用 DFS,这使我无需向 Google API 授权/验证应用程序。它真的很方便,而且我知道它有它的缺点,但到目前为止它工作得非常好。我将编辑我的问题以使其更清楚。
    猜你喜欢
    • 2018-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多