我想上传调用多个部分的REST端点。
特别是,我正在查看此API:Google Cloud Storage: Objects: insert
我读过关于使用 multer 的内容,但是我没有找到任何完整的示例来向我展示如何执行此操作。
有人可以帮我吗?
答案 0 :(得分:2)
https://cloud.google.com/nodejs/getting-started/using-cloud-storage#uploading_to_cloud_storage
^^这是如何使用multer将单个图像上传到Google云端存储的一个很好的示例。使用multer为每个文件创建文件流(存储:multer.memoryStorage()),并通过将文件流发送到回调中的GCS存储桶来处理文件流。
但是链接仅显示一个图像的示例。如果要创建一个图像数组,请创建一个for循环,在其中为请求中的每个文件创建一个流,但只在for循环结束后放置 next()函数。如果在每个循环周期中保留 next(); ,您将收到错误:错误:发送后无法设置标题。
答案 1 :(得分:0)
使用an example和nodejs client library上传文件时multer。您可以修改此示例并设置multipart选项:
将示例代码下载并cd到文件夹中:
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples/
cd nodejs-docs-samples/appengine/storage
编辑app.yaml
文件并添加您的存储桶名称:
GCLOUD_STORAGE_BUCKET: YOUR_BUCKET_NAME
然后在源代码中,您可以根据Objects: insert 示例修改publicUrl
变量:
const publicUrl = format(`https://www.googleapis.com/upload/storage/v1/b/${bucket.name}/o?uploadType=multipart`);
下载服务帐户的密钥文件并设置环境变量:
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/key/file
之后,您已准备好运行npm start
并转到应用的前端并上传您的文件: