简介
AWS 是 Amazon 提供的云计算服务,也是目前最大的公共云服务供应商之一。AWS 提供了多个 SDK (软件开发工具包)以帮助开发人员更方便地在其云端平台上构建应用程序。
其中,@aws-sdk/client-s3 是 AWS 官方提供 Amazon S3(简称 S3),在前端 Web 应用中使用的 JavaScript SDK。S3 是 Amazon 开发的一个分布式的对象存储服务,可以帮助开发者高效的存储和检索任何数量和类型的数据。
@aws-sdk/client-s3 提供了对 Amazon S3 的所有操作的支持,如创建 S3 桶、上传、下载、删除文件等。
在本教程中,我们将学习如何使用 @aws-sdk/client-s3 SDK。
前置条件
使用 @aws-sdk/client-s3 SDK 的前置条件如下:
- AWS 账户并且已启用 Amazon S3 服务。
- 已经创建了 AWS IAM 账户、已经创建了公钥、私钥,并且这些信息已被授权来访问 Amazon S3 服务。
安装和配置@aws-sdk/client-s3
@aws-sdk/client-s3 可以通过 npm 包管理器安装,使用如下命令:
npm install @aws-sdk/client-s3
使用示例
让我们快速了解一下如何使用 @aws-sdk/client-s3 连接 S3 并执行文件操作。
创建 S3 实例
首先,我们需要使用 AWS SDK 提供的构造函数,创建一个 S3 实例,代码如下:
const { S3Client } = require("@aws-sdk/client-s3"); const s3client = new S3Client({ region: "us-east-1", accessKeyId: "YOUR_ACCESS_KEY", secretAccessKey: "YOUR_SECRET_KEY" });
使用 S3 实例时,需要替换 accessKeyId 和 secretAccessKey 为在 AWS 控制台中找到的自己的凭据。
创建 S3 桶
创建 S3 桶时,可以使用 createBucket()
方法,代码如下:
-- -------------------- ---- ------- ----- - ------------------- - - ------------------------------ ----- ------ - - ------- ------------------- -- ----- ------- - ----- ----------------- ----------------------------- ------------------- ------- ------------- ----------------------
参数 Bucket
是创建的 S3 桶的名称。
返回的 Location
属性指示新桶的 URL。
上传文件
上传文件时,使用 putObject()
方法。下面的代码演示了如何上传一个对象:
-- -------------------- ---- ------- ----- - ---------------- - - ------------------------------ ----- ------ - - ------- ------------------- ---- ------------- ----- ----- -- - ------ ------- -- ----- ------- - ----- ----------------- -------------------------- ----------------- -------- ------------- ----------------------
参数 Bucket
是要上传到的 S3 桶的名称,参数 Key
是要上传的文件的名称,参数 Body
是要上传的文件的内容。
返回的 Location
属性指示已上传文件的 URL。
下载文件
下载文件时,使用 getObject()
方法,代码如下:
-- -------------------- ---- ------- ----- - ---------------- - - ------------------------------ ----- -- - -------------- ----- ------ - - ------- ------------------- ---- ------------- -- ----- -------- - ----- ----------------- -------------------------- --------------------------------------------------------- ----------------- ---------- ----------------
参数 Bucket
是要下载的 S3 桶的名称,参数 Key
是要下载的文件的名称。
删除文件
删除对象时,使用 deleteObject()
方法,代码如下:
-- -------------------- ---- ------- ----- - ------------------- - - ------------------------------ ----- ------ - - ------- ------------------- ---- ------------- -- ----- ------- - ----- ----------------- ----------------------------- ----------------- ------- ------------- ----------------------
参数 Bucket
是要删除的 S3 桶的名称,参数 Key
是要删除的对象(文件)的名称。
删除成功后,返回的 Location
属性指向已删除文件的 URL。
总结
本教程介绍了如何使用 @aws-sdk/client-s3 SDK 连接 AWS S3 服务,并上传、下载和删除文件。通过学习本教程,你已经知道如何在前端 Web 应用中使用 @aws-sdk/client-s3 SDK,以及如何进行文件操作。
在开发过程中,需要注意安全问题,需要特别注意密钥的保护和存储。同时,@aws-sdk/client-s3 SDK 还提供了其他操作 API,可以根据自己的需求选择使用。
参考文献
- AWS 官方文档:https://aws.amazon.com/cn/documentation/
- @aws-sdk/client-s3 npm 包:https://www.npmjs.com/package/@aws-sdk/client-s3
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f6ee49da9b7065299ccba0c