介绍
multer-wasb-storage 是一个 npm 包,它为 multer 提供了一个自定义存储引擎。multer 是 Node.js 中的一个流行的文件上传中间件。multer-wasb-storage 允许你将上传的文件存储到 Azure Blob 存储中。
在本文中,我们将使用 multer-wasb-storage,介绍它的用法并提供示例代码。
安装multer-wasb-storage
要使用 multer-wasb-storage,首先需要在项目中安装它。使用 npm 命令进行安装:
npm install multer-wasb-storage
用法
使用 multer-wasb-storage,我们需要创建一个 new WasbStorage 构造函数。该构造函数接受两个参数:一个 options 对象和一个可选的 callback 函数。
options
options 对象包含以下属性:
accountName
:你的 Azure 存储帐户名称。accountKey
:你的 Azure 存储帐户密钥。containerName
:要上传文件的 Azure Blob 存储容器的名称。blobPathResolver
:一个函数,用于指定要上传文件用于的 Blob 路径。默认情况下,将使用 multer 在上传表单中的字段名称作为 Blob 的名称。
callback
callback 函数用于处理存储引擎的实例。如果你不需要执行其他操作,可以将此参数留空。
下面是使用 multer-wasb-storage 的示例代码:
-- -------------------- ---- ------- ----- ------ - ------------------ ----- ----------- - ------------------------------- ----- ----------- - --- ------------- ------------ ------------------------------ ----------- ----------------------------- -------------- ----------------------- --- ----- ------ - -------- -------- ----------- --- ------------------- --------------------------- ----- ---- -- - --------------------- ---
在上面的示例代码中,我们首先引入 multer 和 multer-wasb-storage。然后,我们使用 new WasbStorage
创建一个 multer 存储引擎的实例,并将其传递给 multer 的中间件函数。最后,我们添加一个路由来处理文件上传的操作。
可以看到,存储引擎的实例被创建后,只需将其传递给 multer 就可以使用它。multer 在收到表单请求时,会自动使用存储引擎将文件上传到 Azure Blob 存储中。
Blob 路径解析器
multer-wasb-storage 允许你指定一个函数来确定每个上传的文件应该存储到 Blob 容器的哪个路径下。这个函数被称为 Blob 路径解析器。
默认情况下,multer-wasb-storage 使用以下代码作为默认的 Blob 路径解析器:
blobPathResolver: (req, file) => { return Date.now().toString() + '_' + file.originalname; }
这个默认的解析器会为每个上传的文件生成一个唯一的 Blob 名称。
有时,你可能需要为上传的文件指定不同的 Blob 路径。在这种情况下,只需传递一个自定义 Blob 路径解析器函数即可。
下面是一个使用自定义解析器的示例:
const wasbStorage = new WasbStorage({ accountName: 'yourAzureStorageAccountName', accountKey: 'yourAzureStorageAccountKey', containerName: 'yourBlobContainerName', blobPathResolver: (req, file) => { return 'userUploads/' + Date.now().toString() + '_' + file.originalname; } });
上面代码中的存储引擎使用了一个自定义的 Blob 路径解析器函数。这个函数将为每个上传的文件生成一个以 userUploads/
开头的 Blob 名称。
结论
multer-wasb-storage 提供了一个方便的方式将文件上传到 Azure Blob 存储中。在本文中,我们讨论了如何使用这个库,并给出了示例代码和深度的指导意义,希望能帮助你更好地理解并使用这个工具。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005669881e8991b448e2d0f