亚马逊S3的使用简记(游戏资源发布更新)
上传对象的几种方式:S3控制台、AWS SDK、REST API、AWS CLI。
这里选择 AWS CLI。
上传对象 - Amazon Simple Storage Service
一、安装
安装或更新最新版本的 AWS CLI - AWS Command Line Interface
安装方式为:macOS 中,安装/更新 AWS CLI 版本2
1、检查先决条件
创建 IAM 或 IAM Identity Center 管理账户
2、安装最新版本的 AWS CLI(选择 Command line installer - All users):
⑴、使用 curl 命令下载文件。-o 选项指定下载的程序包应写入的文件名。在此示例中,文件写入当前文件夹中的 AWSCLIV2.pkg。
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
⑵、运行标准 macOS installer 程序,同时将下载的 .pkg 文件指定为源。使用 -pkg 参数指定要安装的程序包的名称以及要将程序包安装到的驱动器的 -target / 参数。系统会将文件安装到 /usr/local/aws-cli,并自动在 /usr/local/bin 中创建符号链接。您必须在命令中使用 sudo 来授予对这些文件夹的写入权限。
sudo installer -pkg AWSCLIV2.pkg -target /
3、验证是否正确安装。
which aws
aws --version
4、配置环境变量
这里,为避免环境变量是否能被 jenkins、python识别到等问题,
直接将 aws 的路径配到 Build/BuildGame/configs/tool.py 中,供上传脚本调用:
AWS_CLI_PATH = "/usr/local/bin/aws"
二、配置
配置 AWS CLI 设置 - AWS Command Line Interface
注意 配置和凭证优先顺序。选择一个即可。
实际上,感觉选择 5 或 6更妥帖一些。这里选择6.
在cmd 中键入aws configure,输入由运维创建的凭证文件。 包含:
Access key ID AKIAU6GDYRMGGHBMW2WN
Secret access key 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
default region name us-east-1
Default output format[None]: json
在cmd 中键入aws s3 ls,能看到桶列表(已创建的情况下)说明认证成功了。
三、使用说明
命令结构
AWS CLI 中的命令结构 - AWS Command Line Interface
在 AWS CLI 中使用速记语法 - AWS Command Line Interface
在 AWS CLI 中设置输出格式 - AWS Command Line Interface
AWS CLI 中的命令行返回代码 - AWS Command Line Interface
在 AWS CLI 中使用高级(s3)命令 - AWS Command Line Interface
1、需了解如下 Amazon S3 术语:
存储桶 – 顶级 Amazon S3 文件夹。
前缀 – 存储桶中的 Amazon S3 文件夹。
对象 – 托管在 Amazon S3 存储桶中的任何项。
2、Amazon S3命令
创建存储桶 aws s3 mb <target> [--options]
列出存储桶和对象 aws s3 ls <target> [--options]
删除存储桶 aws s3 rb <target> [--options]
删除对象 aws s3 rm <target> [--options]
移动对象 aws s3 mv <source> <target> [--options]
复制对象 aws s3 cp <source> <target> [--options]
同步对象 aws s3 sync <source> <target> [--options]
3、Amazon S3命令常用选项
--acl
s3 sync 和 s3 cp 可以使用。够为复制到 Amazon S3 的文件设置访问权限。接受 private、public-read 和 public-read-write 值。
--exclude
使用 s3 cp、s3 mv、s3 sync 或 s3 rm 命令时,可以使用 --exclude 或 --include 选项筛选结果。--exclude 选项将规则设置为仅从命令中排除对象,并且系统将按照指定的顺序应用这些选项。
--grants
s3 cp、s3 mv 和 s3 sync 命令包括一个 --grants 选项,可用来向指定的用户或组授予对对象的权限。使用以下语法对权限列表设置 --grants 选项。将 Permission、Grantee_Type 和 Grantee_ID 替换为您自己的值。
--recursive
使用此选项时,系统针对所指定目录或前缀下的所有文件或对象执行该命令。(似乎仅可用于删除命令?)
--delete
sync 可以使用,同步时从目标中删除源中不存在的文件或对象。
aws s3 sync builtResult/VersionedRes/${platform} ${s3BucketAccessPoint}/${platform}
/usr/local/bin/aws s3 sync /Users/xxx/.jenkins/workspace/SyncVersionedRes/BuiltResult/VersionedRes/GooglePlay s3://arn:aws:s3:us-west-1:339712969484:accesspoint/xxxxxxx-s3/VersionedRes/GooglePlay
四、部分名词解释:
AWS (Amazon Web Services):亚马逊云服务
SSO(Single Sign-On):提供的一项服务,旨在帮助企业用户实现跨多个应用程序和AWS账户的单点登录功能。这意味着用户只需要在一个中心位置认证一次,就可以访问所有被授权的应用程序和服务,而无需在每次访问新应用或服务时重新输入凭证。
IAM(Identity and Access Management)身份和访问管理,用于帮助用户安全地控制对AWS资源的访问。