在nestjs中上传blob存储文件的Api



我正在尝试使用@azure/storage-blob和@types/multer npm包上传blob存储中的文件。

service.ts

getblob(filename: any): BlockBlobClient {
const connectionString = process.env.CONNECTION_STRING,
containerName = process.env.BLOB_CONTAINER;
const blobServiceClient =
BlobServiceClient.fromConnectionString(connectionString);
const blobContainer =
blobServiceClient.getContainerClient(containerName);
return blobContainer.getBlockBlobClient(filename);
} 

async FileUpload(file: Express.Multer.File) {
try {
const blockblob = this.getblob(file.originalname);
console.log(file.buffer);
return await blockblob.uploadData(file.buffer);
} catch (err) {
console.log(err);
}
}

controller.ts

@Post("uploadfile")
@UseInterceptors(FileInterceptor("Server"))
async uploadFile(@UploadedFile() file: Express.Multer.File) {
try {
return file;
} catch (err) {
console.log(err);
}
}

但是我得到这个错误。

TypeError [ERR_INVALID_ARG_TYPE]: The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object. Received undefined

任何人都有任何解决这个错误的方法。我做错了什么吗?

This error was expecting an instance of Buffer so this way we can do:-
server.ts

async FileUpload(file: Express.Multer.File) {
try {
const blockblob = this.getblob(file.originalname);
console.log(file.buffer);
const blob = Buffer.from(file.buffer)
return await blockblob.uploadData(file.buffer);
} catch (err) {
console.log(err);
}}

最新更新