【发布时间】:2022-01-09 19:05:50
【问题描述】:
我正在将应用程序从 Azure 存储迁移到 Google 云存储。
我的上传API如下:
let uploadFile = async (req, res) => {
try {
var form = new multiparty.Form();
form.on("part", async function (part) {
if (part.filename) {
let filnam = part.filename.replace(/\s/g, "");
var size = part.byteCount - part.byteOffset;
container = containerName(part.headers["content-type"]);
blobName = fileName(filnam);
let fileDetails = await GCSService.uploadFile(
container,
part,
blobName,
part.headers["content-type"],
part.filename
)
Response.success(res, res, status.HTTP_OK, fileDetails);
}
});
form.parse(req);
} catch (err) {
console.log("Error Uploading File: ", err);
throw new Error("file upload error");
}
};
使用 Azure 存储,我可以使用 uploadStream 函数直接上传分段,
await blockBlobClient.uploadStream(part, 4 * 1024 * 1024, 20, {
blobHTTPHeaders: {
blobContentType: mimetype
},
onProgress: (ev) => console.log(ev)
});
const blobClient = containerClient.getBlobClient(blobName);
但是当我尝试使用 Google Cloud Storage createWriteStream 进行相同操作时,它会上传文件,但文件是 0 字节。
bucket.file(blobName).createWriteStream({
resumable: false
}).on('finish', async () => {});
谁能指出正确的 Google Cloud Storage 实施方向?
谢谢
【问题讨论】:
标签: node.js google-cloud-platform google-cloud-storage azure-blob-storage