簡體   English   中英

通過POST請求發送文件流時出現錯誤

[英]Getting error when sending a file stream through a POST request

我已經創建了一個與Google Drive API連接的網絡服務。 另外還有一個使用react js前端開發的系統。 我需要通過我開發的Web服務將文件從React System發送到Google Drive。 為此,我使用了文件流。 發送時,出現錯誤消息“ part.body.pipe不是函數”。 這來自Google Drive API。

下面的代碼是我發送的POST請求的示例代碼。

const axios = require('axios');
const fs    = require('fs');

const stream = fs.createReadStream('./download.jpg');

axios.post('http://localhost:3008/google-drive/upload-file', {
        stream,
        name: 'add.jpg',
        mimeType: 'image/jpeg',
    }
)
.then((res) => {
    console.log(`statusCode: ${res.statusCode}`)
    console.log(res)
})
.catch((error) => {
    console.error(error)
})

以下是用於文件上傳的Google驅動器集成。

function uploadFiles(auth, mainRequest, mainResponse) {
    const drive = google.drive({version: 'v3', auth});

    const {
        stream,
        name,
        mimeType,
    } = mainRequest.body;

    let fileMetaData = {
        name,
    };

    let media = {
        mimeType,
        body: stream,
    };

    drive.files.create({
        media,
        resource: fileMetaData,
        fields: 'id',
    }, (error, file) => {
        if (error) {
            console.log(error);

            return mainResponse.status(200).json({
                message: 'The API returned an error: ' + error
            });
        }

        return mainResponse.status(200).json({
            fileId: file.id
        });
    });
}

我認為問題出在createReadStream 我不確定我是否正確使用了它。

提前致謝。 :)

您在fs中犯了一個錯誤

而是嘗試使用此同步功能

fs.readFileSync('filename.jpg','utf8')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM