Google drive api确实提供了一些示例来创建和更新电子表格。
然而,由于我们有不同的csvs,我们将会设计更多。 我正在寻找的是一个通用的解决方案,它将获取存储在blobstore中的csv的url并将这些文件保存在Google驱动器上。
答案 0 :(得分:2)
我的解决方案是这样的,借助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')
但是,此代码存在一个小问题。谷歌驱动器API在上传时不会将此文件转换为电子表格,因此预览不起作用。要查看该文件,我必须在电子表格中打开此文档,将文件转换为Google电子表格。 我在API documentation中看到过转换选项。 但是,在使用RPC调用时,我找不到任何转换文件的方法。 请建议我如何实现这一目标。
答案 1 :(得分:0)
我知道没有通用的解决方案,但我们实际上是在讨论4到5行Python来实现这一目标。
DrEdit Python示例将文件从App Engine Python保存到Drive,使用blobstore将是一个简单的补充。