首先,注册一个aws账号,外服应该需要信用卡,信用卡可以设置个限额,防止一顿瞎操作后扣费。
左上角服务中即可找到 `s3`
![image.png](https://thetbw-hk.cos.thetbw.xyz/blog/image_1669603880542.png)
开通服务后在 `s3` 的管理界面新建储存桶,如果不用作图床之类,建议阻止公开访问
![image.png](https://thetbw-hk.cos.thetbw.xyz/blog/image_1669604079367.png)
> 之后可以在这个储存桶里管理和上传文件
如果需要第三方 api 访问的话,需要生成一对访问密钥
在右上角的个人设置界面。(当初找了好久,不像腾讯云那种,直接储存桶管理界面就可以看到访问密钥和url)
![JQRTPDCE4QGMPJWTK.png](https://thetbw-hk.cos.thetbw.xyz/blog/HJ%7BQ%7BRTPD%7DCE4QGM(PJW(TK_1669605929567.png)
> 后续补充,安全起见,建议使用services -> IAM 中新建个子用户,只赋予s3的访问权限
随后使用访问密钥就可以使用 aws的sdk访问服务了
贴一下java sdk的代码,其他的大同小异吧
```java
public void upload() {
S3Client client = S3Client.builder()
.region(Region.AP_SOUTHEAST_1) //选择一个服务区域,注意选cn应该是要aws中国账号
.credentialsProvider(() -> new AwsCredentials() {
@Override
public String accessKeyId() {
return "密钥id";
}
@Override
public String secretAccessKey() {
return "密钥";
}
}).build();
PutObjectRequest putObjectRequest = PutObjectRequest.builder()
.bucket("储存桶名称")
.key("test/test.png")
.build();
PutObjectResponse response = client.putObject(putObjectRequest, FileSystems.getDefault().getPath("C:\\Users\\thetbw\\test.png"));
System.out.println(response.toString());
client.close();
}
```
如果使用其他程序,例如 `cloudreve` 这种网盘,绑定 `aws s3`,应该还需要一个访问 url,可以在[这里](https://docs.aws.amazon.com/general/latest/gr/rande.html)找到可用的url,选择离你区域近的即可,或者搜索 `aws endpoints`,可以找到aws的相关文档。
比如我用的就是 `https://s3-accesspoint.ap-southeast-1.amazonaws.com/`
AWS S3的简单使用