gpt4 book ai didi

java - 如何通过Google Drive REST api获取Google文档的文本内容

转载 作者:行者123 更新时间:2023-12-02 05:26:19 24 4
gpt4 key购买 nike

我需要从 Google Drive 文档(MIME 类型:application/vnd.google-apps.document)读取数据,以便我可以将其进一步传递到下游进行处理。

看起来唯一的方法是首先使用 files().export(fileId, MIME_TYPE.GoogleDocsDocument.toString()).getMediaHttpDownloader 下载文档,下载后解析内容,然后使用 files().update 上传包含该文档内容的新文件

我尝试过使用files().get(fileId).executeMediaAndDownloadTo(outputStream) 但它不允许谷歌文件。我还尝试挖掘他们的文档以寻找其他方法来执行此操作,但到目前为止还没有运气。

有没有办法避免下载文件?

最佳答案

我发现我正在尝试将文档导出为 Google 文档,这就是为什么我在尝试使用executeMediaAndDownloadTo 方法时收到错误。为此,似乎有必要导出为纯文本或其他非谷歌格式。我确信这会导致某种格式问题,但应该可以解决这些问题。这是我最终得到的基本用法。

    public void updateGoogleDocFile(String fileId, String newContent) throws IOException
{
try {
//First retrieve the file from the API as text file
java.io.File tempDataFile = java.io.File.createTempFile("googleDocsIncomingFile", ".txt");
OutputStream os = new FileOutputStream(tempDataFile);
//Convert data to bytes and write to new file
byte[] fileBytes = downloadGoogleDocFile(fileId).toByteArray();
os.write(fileBytes);
//Get new data to append, convert to bytes, and write to file
byte[] newConentBytes = newContent.getBytes();
os.write(newConentBytes);
os.flush();
os.close();

//File's new metadata.
File newFile = new File();
//newFile.setName(fileName);
//newFile.setDescription("mydescription");
//newFile.setMimeType(MIME_TYPE.GoogleDocsDocument.toString());

// Send the request to the API.
FileContent mediaContent = new FileContent(MIME_TYPE.GoogleDocsDocument.toString(), tempDataFile);
SERVICE.files().update(fileId, newFile, mediaContent).execute();

} catch (IOException e)
{
System.out.println("An error occurred while trying to update the google docs file: " + e);
}
}

public ByteArrayOutputStream downloadGoogleDocFile(String fileId) throws IOException
{
Export export = SERVICE.files().export(fileId, MIME_TYPE.PlainText.toString());
ByteArrayOutputStream out = new ByteArrayOutputStream();
export.executeMediaAndDownloadTo(out);
return out;
}

关于java - 如何通过Google Drive REST api获取Google文档的文本内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56229762/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com