在开发过程中,我们经常需要使用云存储来存储用户上传的文件和图片。针对此类使用场景,npm 社区中有一个名为 keystone-storage-adapter-cloud-storage 的 npm 包,它提供了一个轻量级的、易于设置的适配器,支持将文件上传到 Google Cloud Storage,以及 Amazon S3 和 Minio。
在这篇文章中,我将带领大家一步步地学习如何使用 keystone-storage-adapter-cloud-storage 包,以及如何在 keystonejs 项目中使用它。
安装
npm install keystone-storage-adapter-cloud-storage
使用
使用 keystone-storage-adapter-cloud-storage 包,您需要先在 Google Cloud Platform (GCP) / Amazon S3 / Minio 上创建一个存储桶。
然后您需要在 keystone.js 项目中做以下步骤:
- 引入 keystone storage adapter 包:
const { createStorageAdapter } = require('keystone-storage-adapter-cloud-storage');
- 配置存储适配器:
const storageAdapter = createStorageAdapter({ provider: 'google-cloud-storage', bucket: 'your-bucket-name-here', apiKey: 'your-api-key-here', projectId: 'your-project-id-here', credentials: 'path/to/your/credentials.json' });
其中 provider
参数可以为:'google-cloud-storage', 'amazon-s3' and 'minio'
。
- 在 keystonejs 父级配置中使用
storageAdapter
:
keystone.createList('User', { fields: { avatar: { type: Upload, adapter: storageAdapter } } });
示例
以下是一个完整的 keystonejs example,演示如何使用 keystone-storage-adapter-cloud-storage 包:
-- -------------------- ---- ------- ----- - -------- - - -------------------------------- ----- - ----- ------- ------ - - ------------------------------ ----- - -------------------- - - -------------------------------------------------- ----- -------- - --- ---------- ----- --- ----- ---------- --------- -------- ---------- --- -- ---- ------- ------- -- ----- -------------- - ---------------------- --------- ----------------------- ------- ------------------------ ------- -------------------- ---------- ----------------------- ------------ ------------------------------- --- -- -- ---- ---- --------------------------- - ------- - ----- - ----- ---- -- ------- - ----- ------- -------- -------------- - - --- -- -- -------- -- -------- ---------- ----- --- -- ----------- -- ----------- -- -- - ----- ------------------- -------------------------------- -- ------ ------------------- --------- -- ---- ------------------ -- -------- ---
总结
在这篇文章中,我们学习了如何使用 npm 包 keystone-storage-adapter-cloud-storage,在 keystonejs 项目中实现云存储的功能。希望这篇文章对大家有指导和帮助,如果您有任何疑问或建议,请随时和我联系。谢谢!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600671a730d09270238225fe