Google Cloud Storage 是一种云存储服务,提供了高度可扩展的存储,使你可以在任何规模的应用中存储和访问数据。如果你正在使用 Deno 进行前端开发,那么 Google Cloud Storage 可能会成为你的好帮手。在本文中,我们将学习如何在 Deno 中使用 Google Cloud Storage。
准备工作
在开始之前,你需要进行一些准备工作:
- 一个 Google Cloud Platform 账户。
- 创建一个 Google Cloud Storage 存储桶,用于存储你的数据。
- 确认你的账户有权限访问你要使用的存储桶。
- 安装
@google-cloud/storage
npm 包。
安装依赖
在 Deno 中使用 npm 包,需要先将其转换为 ES 模块。你可以使用 Deno 风格的 Node 模块 来完成这个过程。运行以下命令:
deno install --allow-read --allow-write --allow-net https://deno.land/x/denoify/mod.ts
这个命令会将 denoify
模块下载到你的本地机器中,并允许你在安装其他 npm 模块时进行必要的转换。
现在,我们可以安装 @google-cloud/storage
模块了。运行以下命令:
npm install @google-cloud/storage
denoify
这个命令会将 @google-cloud/storage
模块转换为 ES 模块,并将其放置在 node_modules
目录中。
创建 Google Cloud Storage 客户端
在开始使用 Google Cloud Storage 之前,你需要创建一个客户端对象。客户端对象允许你与存储桶进行交互。在 Deno 中,我们可以通过以下方式创建客户端:
import { Storage } from "@google-cloud/storage"; const storage = new Storage({ projectId: "YOUR_PROJECT_ID", // 将 YOUR_PROJECT_ID 替换为你的项目 ID keyFilename: "path/to/your/keyfile.json", // 将 path/to/your/keyfile.json 替换为你的服务账号的 JSON 密钥文件路径 });
在上面的代码示例中,我们使用 Storage
构造函数来创建一个客户端对象。你需要将 projectId
属性设置为你的 Google Cloud Platform 项目 ID。另外,你需要将 keyFilename
属性设置为你的服务账号的 JSON 密钥文件路径。这个密钥文件可以通过 Google Cloud Platform 控制台创建。
上传文件到 Google Cloud Storage
在创建了 Google Cloud Storage 客户端对象之后,我们可以将文件上传到存储桶中。以下代码示例演示了如何上传文件到存储桶中:
// javascriptcn.com code example const bucketName = "YOUR_BUCKET_NAME"; // 将 YOUR_BUCKET_NAME 替换为你的存储桶名称 const filename = "path/to/your/file.txt"; // 将 path/to/your/file.txt 替换为你要上传的文件路径 async function uploadFile() { const bucket = storage.bucket(bucketName); const file = bucket.file(destination); const stream = fs.createReadStream(filename); stream.pipe(file.createWriteStream()); return new Promise((resolve, reject) => { stream.on("end", () => { resolve(); }); stream.on("error", (err) => { reject(err); }); }); } uploadFile() .then(() => { console.log("File upload successful!"); }) .catch((err) => { console.error(err); });
在上面的示例中,我们首先定义了存储桶名称和文件路径。然后,我们定义了一个名为 uploadFile
的异步函数,在该函数中创建了存储桶和文件对象。最后,我们通过文件流将文件上传到存储桶中。
下载文件从 Google Cloud Storage
类似地,我们可以从 Google Cloud Storage 中下载文件。以下代码示例演示了如何从存储桶中下载文件:
// javascriptcn.com code example const bucketName = "YOUR_BUCKET_NAME"; // 将 YOUR_BUCKET_NAME 替换为你的存储桶名称 const filename = "path/to/your/file.txt"; // 将 path/to/your/file.txt 替换为你要下载的文件路径 async function downloadFile() { const bucket = storage.bucket(bucketName); const file = bucket.file(destination); return file.download({ destination: filename, }); } downloadFile() .then(() => { console.log("File download successful!"); }) .catch((err) => { console.error(err); });
在上面的示例中,我们首先定义了存储桶名称和文件路径。然后,我们定义了一个名为 downloadFile
的异步函数,在该函数中创建了存储桶和文件对象。最后,我们通过 download
方法将文件从存储桶中下载到本地文件系统。
删除文件从 Google Cloud Storage
最后,我们还可以从 Google Cloud Storage 中删除文件。以下代码示例演示了如何删除存储桶中的文件:
// javascriptcn.com code example const bucketName = "YOUR_BUCKET_NAME"; // 将 YOUR_BUCKET_NAME 替换为你的存储桶名称 const filename = "path/to/your/file.txt"; // 将 path/to/your/file.txt 替换为你要删除的文件路径 async function deleteFile() { const bucket = storage.bucket(bucketName); const file = bucket.file(destination); return file.delete(); } deleteFile() .then(() => { console.log("File deletion successful!"); }) .catch((err) => { console.error(err); });
在上面的示例中,我们首先定义了存储桶名称和文件路径。然后,我们定义了一个名为 deleteFile
的异步函数,在该函数中创建了存储桶和文件对象。最后,我们通过 delete
方法将文件从存储桶中删除。
结论
以上就是在 Deno 中使用 Google Cloud Storage 的详细指南。通过这个指南,你已经学会了如何创建 Google Cloud Storage 客户端对象,并使用该对象上传、下载和删除文件。这些知识可以让你更加方便地管理存储桶中的数据,使你的前端开发工作更加高效。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/672f1baceedcc8a97c8c9f2c