简介
gcs-browser-upload-stream 是一款基于 Google Cloud Storage 的流式上传 NPM 包,使用它可以在前端网页中将文件直接上传至 Google Cloud Storage 中,而不需要通过无效的中间步骤进行上传。
安装
通过 npm 安装就可以使用该包,运行以下命令即可:
npm install gcs-browser-upload-stream
用法
获取授权
首先需要获取 google-cloud-storage 的授权,可以使用以下两种方式:
- 使用 ServiceWorker:如果您在使用 ServiceWorker,我们建议您使用
google-auth-library-browser
包或其他可用的身份验证浏览器包。 - 使用 OAuth 2.0:如果您未使用 ServiceWorker,我们建议使用
google-identity-toolkit
包实现 OAuth 2.0 授权。
上传文件
在获取授权后,我们可以使用以下代码上传文件:
-- -------------------- ---- ------- ----- ---------------------- - ------------------------------------- ----- ---------- - ------------------- ----- ---------- - ------------------- ----- -------- - - ------------ ------------------- -- ----- ---- - ---------------------------------------------------- ----- --------------- - --- -------------------------- - ------- ----------- ------- ----------- --------- -------- --- ----- ---------- - --- ------------- ----------------- - ---------- - ----- ------ - --- ------------------------ ------------------------------ ---------------------- -- -----------------------------------
其中:
bucketName
:您的谷歌云存储桶名称。objectName
:您要上传到对象存储桶中的对象的名称。 如果要创建一个嵌套的对象,请包括斜杠,例如“ folder1/folder2/object1”。metadata
:文件的元数据信息对象,metadata 中contentType
表示文件类型。file
: 文件对象。
监听上传事件
您可以监听 gcsUploadStream
的事件,以获取更多的上传信息,例如当前上传进度。
gcsUploadStream.on('progress', function(progress) { console.log(progress); });
示例
以下是一个完整的上传示例:
-- -------------------- ---- ------- ----- ---------------------- - ------------------------------------- ----- ---------- - ------------------- ----- ---------- - ------------------- ----- -------- - - ------------ ------------------- -- ----- ---- - ---------------------------------------------------- ----- --------------- - --- -------------------------- - ------- ----------- ------- ----------- --------- -------- --- ------------------------------ ------------------ - ---------------------- --- ----- ---------- - --- ------------- ----------------- - ---------- - ----- ------ - --- ------------------------ ------------------------------ ---------------------- -- -----------------------------------
总结
通过 gcs-browser-upload-stream 包,可以在前端将文件直接上传至 Google Cloud Storage 中,极大地减少了上传所需的中间步骤,使用方便,建议在前端开发中使用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64598