Google drive api 确实提供了一些示例来创建和更新电子表格。
但是,由于我们有不同的 csv,我们将设计更多。我正在寻找的是一个通用的解决方案,它将获取存储在 blobstore 中的 csv 的 url 并将这些文件保存在 Google 驱动器上。
Google drive api 确实提供了一些示例来创建和更新电子表格。
但是,由于我们有不同的 csv,我们将设计更多。我正在寻找的是一个通用的解决方案,它将获取存储在 blobstore 中的 csv 的 url 并将这些文件保存在 Google 驱动器上。
我的解决方案是这样的,借助 drEdit 示例:
def get_data(self):
blob_reader = blobstore.BlobReader(self.__blob_key__)
data = blob_reader.read()
fh = io.BytesIO(data)
return fh
def save_file(self, dest_filename, description, mime_type):
service = self.create_drive()
resource = {
'title': dest_filename,
'description': description,
'mimeType': mime_type,
}
try:
file_data = self.get_file_data()
resource = service.files().insert(
body=resource,
media_body=MediaIoBaseUpload(
file_data,
mime_type,
resumable=False)
).execute()
except AccessTokenRefreshError:
pass
调用 save_file:
drive.save_file('testing_drive', 'testing....', 'text/csv')
或者
drive.save_file('testing_drive.csv', 'testing....', 'text/csv')
但是,此代码存在一个小问题。Google drive API 在上传时不会将此文件转换为电子表格,因此预览不起作用。要查看文件,我必须在电子表格中打开此文档,将文件转换为谷歌电子表格。我在API 文档中看到了有关转换选项的信息。但是,在使用 RPC 调用时,我找不到任何转换文件的方法。请建议我怎样才能做到这一点。
我知道没有通用的解决方案,但我们实际上是在谈论 4 或 5 行 Python 来实现这一点。
DrEdit Python示例将文件从 App Engine Python 保存到云端硬盘,使用 blobstore 将是一个简单的补充。