我正在從驅動器中匯出一個sheet檔案,并將其以pdf格式上傳至驅動器。問題是,為了上傳它,我需要先把它保存到服務器上的檔案。
我試著在fs.createReadStream中從drive.files.export中讀取一個回應,但它沒有成功。有其他的方法嗎?
const res = await drive.files.export(
{ fileId, mimeType: "application/pdf" }; "application/pdf" }
);
var media = {
mimeType: 'application/pdf'。
body: fs.createReadStream(res) // TypeError [ERR_INVALID_ARG_TYPE]。path "引數必須是字串型別或Buffer或URL的實體。收到的是一個Object的實體。
};
const resCreate = await drive.files.create( {
uploadType: "media",
media: media,
resource: fileMetadata,
fields: "id"。
}, function (err, file) {...}) 。
uj5u.com熱心網友回復:
我相信你的目標如下。
- 你想匯出一個谷歌電子表格作為PDF資料,并想把它上傳到Google Drive。
- 屆時,您希望在不創建檔案的情況下實作這一目標。
- 您希望使用 Node.js 的 googleapis 來實作這一目標。
在這種情況下,下面的修改如何呢?
修改的腳本:
constres = await drive.files.export(
{ fileId, mimeType: "application/pdf" }。
{ responseType: "stream" }; {span class="hljs-attr">回應型別: "stream" }
);
var media = {
mimeType: "application/pdf"。
body: res.data,
};
const resCreate = await drive.files.create( {
uploadType: "media",
media: media,
resource: fileMetadata,
fields: "id"。
});
console.log(resCreate.data.id)。
- 在你使用這個修改后的腳本之前,請設定
fileId和fileMetadata。 - 匯出的檔案是用
responseType.檢索流資料。"stream"。通過這一點,回傳的資料可以被用于media。
參考資料:
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/334234.html
標籤:
