# 文件存储模块

## 1. 前端上传接口

## 2. 配置STS直传

### 步骤一：创建RAM用户

- 登录RAM控制台。
- 在左侧导航栏的人员管理菜单下，单击用户。
- 单击新建用户。
- 输入登录名称和显示名称。
- 在访问方式区域下，选择编程访问，然后单击确定。
- 单击复制，保存访问密钥（AccessKey ID 和 AccessKey Secret）。

### 步骤二：为RAM用户授予请求AssumeRole的权限

- 单击已创建RAM用户右侧对应的添加权限。
- 在添加权限页面，选择AliyunSTSAssumeRoleAccess权限。
- 单击确定。

### 步骤三：创建用于获取临时访问凭证的角色

- 在左侧导航栏，单击RAM角色管理。
- 单击新建RAM角色，选择可信实体类型为阿里云账号，单击下一步。
- 在新建RAM角色页面，RAM角色名称填写为RamOssTest，选择云账号为当前云账号。
- 单击完成。
- 单击复制，保存角色的ARN。

### 步骤四：为角色授予上传文件的权限

- 在左侧导航栏的权限管理菜单下，单击权限策略管理。
- 单击创建权限策略。
- 在新建自定义权限策略页面，填写策略名称，配置模式选择脚本配置，并在策略内容中赋予角色向目标存储空间examplebucket下的目录exampledir上传文件的权限。
```json
{
    "Version": "1",
    "Statement": [
     {
           "Effect": "Allow",
           "Action": [
             "oss:PutObject"
           ],
           "Resource": [
             "acs:oss:*:*:examplebucket/exampledir",
             "acs:oss:*:*:examplebucket/exampledir/*"
           ]
     }
    ]
}
```
- 单击确定。

### 步骤五：获取临时访问凭证

- 您可以通过调用STS服务接口AssumeRole 或者使用各语言STS SDK来获取临时访问凭证。
> 说明 临时访问凭证有效时间单位为秒，最小值为900，最大值以当前角色设定的最大会话时间为准。详情请参见设置角色最大会话时间。

### 步骤六：使用临时访问凭证上传文件至OSS

### 常见问题

- 报错The security token you provided is invalid.如何处理？
> 请确保完整填写步骤五获取到的SecurityToken。

- 报错The OSS Access Key Id you provided does not exist in our records.如何处理？
> 临时访问凭证已过期，过期后自动失效。请使用临时访问密钥（AccessKeyId和AccessKeySecret）向App服务器申请新的临时访问凭证。具体操作，请参见步骤五。

- 获取STS时报错NoSuchBucket如何处理？
> 出现这种报错通常是STS的endpoint填写错误。请根据您的地域，填写正确的STS接入地址。各地域的STS接入地址请参见接入地址。