是否可以通过 storagenestJS sdk 上传带有元数据的文件?
Posted
技术标签:
【中文标题】是否可以通过 storagenestJS sdk 上传带有元数据的文件?【英文标题】:Is it possible upload file with metadata by storage nestJS sdk? 【发布时间】:2021-04-14 18:13:27 【问题描述】:我正在使用 Azure 存储和 Nestjs。我正在使用 Azure 存储来存储一些静态文件。我可以通过 Nestjs 存储 SDK 成功上传文件。现在我需要上传一个包含一些自定义 blob 元数据的文件,我已经浏览了Nestjs storage SDK 的源代码,但似乎没有预定义的方法可以做到这一点。那么是否可以上传带有自定义元数据的 blob?或者有什么解决办法?
谢谢!
【问题讨论】:
【参考方案1】:我也查看了azureStorageService
的源代码,它没有提供有用的方法。但是上传操作回复了一个带有 SAS 令牌的 storageUrl,我们可以使用它来发出另一个 HTTP 请求:set-blob-metaData 来设置 blob 元数据。这是我的测试代码,name
是我测试中的元数据:
@Post('azure/upload')
@UseInterceptors(
AzureStorageFileInterceptor('file', null),
)
async UploadedFilesUsingInterceptor(
@UploadedFile()
file: UploadedFileMetadata,
)
file =
...file,
buffer : Buffer.from('file'),
originalname: 'somename.txt'
;
const storageUrl = await this.azureStorage.upload(file);
//call rest api to set metadata
await this.httpService.put(storageUrl + "&comp=metadata",null,headers:'x-ms-meta-name':'orginal name here')
.subscribe((response) =>
console.log(response.status);
);
Logger.log(storageUrl);
结果:
【讨论】:
超级!谢谢@Stanley,它对我有用。我相信我可以根据这个 URL 做一些其他的操作。以上是关于是否可以通过 storagenestJS sdk 上传带有元数据的文件?的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在 Flutter Web 应用程序中使用 Firebase 管理 SDK?
是否可以使用带有 @hide 注释的 Android SDK 方法?