赞
踩
AWS S3(Simple Storage Service)是亚马逊云服务提供的一种高度可扩展、安全且经济高效的对象存储服务。它允许用户在任何位置存储和检索任意数量的数据,非常适合存储和分发静态文件、备份数据以及作为数据湖的存储层。
登录AWS控制台
访问 https://console.aws.amazon.com/ 并使用您的AWS账户凭证登录。
打开S3服务控制台
在AWS服务列表中,找到"存储"部分,然后选择"S3"服务。
创建存储桶
在S3控制台中,单击"创建存储桶"按钮。
命名存储桶
输入一个全局唯一的存储桶名称。存储桶名称必须遵循特定的命名规则,例如只能包含小写字母、数字和连字符(-)。
选择AWS区域
选择要在其中创建存储桶的AWS区域。通常选择离您的应用程序或用户最近的区域,以获得更好的性能和更低的延迟。
配置存储桶设置(可选)
根据您的需求,您可以配置存储桶的其他设置,例如:
创建存储桶
检查您的设置,然后单击"创建存储桶"按钮。
选择包含目标文件的存储桶
选择要下载的文件
下载文件
选择保存位置并确认下载
等待下载完成
在 Windows 上安装和配置 AWS CLI 的步骤如下:
安装 AWS CLI
验证 AWS CLI 安装
打开命令提示符或 PowerShell,输入以下命令验证安装:
aws --version
如果安装成功,将显示 AWS CLI 版本。
配置 AWS 凭证
AWS CLI 需要使用 AWS 访问密钥和秘密访问密钥进行身份验证。您可以使用以下两种方式之一来配置凭证:
使用 aws configure 命令
在命令提示符或 PowerShell 中输入:
aws configure
系统将提示您输入 AWS Access Key ID、AWS Secret Access Key、默认区域名称和默认输出格式。您可以从 AWS 管理控制台获取访问密钥和秘密访问密钥。
手动创建凭证文件
转到 %USERPROFILE%\.aws
目录(如果不存在则创建),在该目录下创建一个名为 credentials
的文件,并添加以下内容:
- [default]
- aws_access_key_id = YOUR_AWS_ACCESS_KEY_ID
- aws_secret_access_key = YOUR_AWS_SECRET_ACCESS_KEY
将 YOUR_AWS_ACCESS_KEY_ID
和 YOUR_AWS_SECRET_ACCESS_KEY
替换为您的实际凭证。
验证配置
您可以运行以下命令来验证配置是否正确:
aws iam get-user
如果一切配置正确,该命令将显示关于您的 AWS 用户的信息。如果出现错误,请检查您的凭证是否正确。
其他配置选项
您还可以配置其他选项,如默认区域和输出格式。例如:
- aws configure set default.region us-west-2
- aws configure set default.output json
这将把默认区域设置为 us-west-2
,默认输出格式设置为 JSON。
aws S3 mb s3://my-bucket
aws s3 cp example.txt s3://my-bucket/
aws s3 cp s3://my-bucket/example.txt .
上面命令是将S3文件下载到当前目录
AWS S3 SYNC 命令用于同步本地目录或 S3 存储桶中的内容与另一个 S3 存储桶。它可以上传、更新和删除对象,以确保源和目标之间的内容保持同步。
aws s3 sync /path/to/local/dir s3://my-bucket
这将把本地目录 /path/to/local/dir
中的所有文件和子目录上传到 S3 存储桶 my-bucket
。如果存储桶中已经存在同名对象,它们将被覆盖。
aws s3 sync s3://my-bucket /path/to/local/dir
这将把 S3 存储桶 my-bucket
中的所有对象下载到本地目录 /path/to/local/dir
。如果本地目录中已经存在同名文件,它们将被覆盖。
aws s3 sync s3://source-bucket s3://destination-bucket
这将把 S3 存储桶 source-bucket
中的所有对象复制到 destination-bucket
。如果目标存储桶中已经存在同名对象,它们将被覆盖。
您可以使用 --exclude
参数排除某些文件或目录。例如:
aws s3 sync /path/to/local/dir s3://my-bucket --exclude "*.tmp" --exclude "temp/*"
这将同步本地目录,但排除所有以 .tmp
结尾的文件和 temp
子目录中的所有文件。
默认情况下,sync
命令不会删除目标中多余的对象。如果您希望在同步过程中删除目标中多余的对象,可以使用 --delete
参数:
aws s3 sync /path/to/local/dir s3://my-bucket --delete
这将同步本地目录,并删除 S3 存储桶 my-bucket
中多余的对象。
aws s3 sync
命令还支持许多其他选项,如设置 ACL、元数据、存储类和加密等。您可以使用 aws s3 sync help
获取更多信息。
AWS S3 提供了一种通过签名 URL 或签名 Cookie 共享存储桶或对象的方法,无需提供您的 AWS 访问密钥。这种方式可以安全地向他人授予临时访问权限,而不会泄露您的凭证。
以下是通过签名共享 S3 上数据的步骤:
签名 URL 可以提供对特定对象的临时访问权限。您可以使用 AWS CLI 或 AWS SDK 生成签名 URL。
使用 AWS CLI 生成签名 URL:
aws s3 presign s3://my-bucket/my-object --expires-in 3600
这将为 my-bucket
存储桶中的 my-object
对象生成一个签名 URL,有效期为 1 小时(3600 秒)。您可以将此 URL 共享给其他人,他们就可以在有效期内访问该对象。
签名 Cookie 可以提供对整个存储桶的临时访问权限。您需要使用 AWS SDK 生成签名 Cookie。
使用 AWS SDK for Java 生成签名 Cookie:
- import com.amazonaws.services.s3.AmazonS3;
- import com.amazonaws.services.s3.AmazonS3ClientBuilder;
- import com.amazonaws.services.s3.model.Bucket;
-
- AmazonS3 s3Client = AmazonS3ClientBuilder.defaultClient();
- String bucketName = "my-bucket";
-
- // 生成签名 Cookie
- String signedCookie = s3Client.generatePresignedUrl(
- new GeneratePresignedUrlRequest(bucketName, null)
- .withMethod(HttpMethod.GET)
- .withExpiration(DateTime.now().plusHours(1))
- ).toString();
这将为 my-bucket
存储桶生成一个签名 Cookie,有效期为 1 小时。您可以将此 Cookie 共享给其他人,他们就可以在有效期内访问该存储桶中的所有对象。
您可以在生成签名 URL 或签名 Cookie 时设置一些限制,例如:
例如,以下命令将生成一个只允许从 192.168.1.0/24 IP 范围进行 GET 请求访问的签名 URL:
- aws s3 presign s3://my-bucket/my-object \
- --expires-in 3600 \
- --ip-range 192.168.1.0/24 \
- --allowed-method GET
通过签名 URL 或签名 Cookie 共享 S3 上的数据是一种安全且灵活的方式,可以根据您的需求设置不同的访问权限。但请记住,一旦共享了签名 URL 或签名 Cookie,任何拥有它们的人都可以在有效期内访问相应的对象或存储桶,因此请谨慎共享。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。