存储桶权限配置说明

本文档说明接入云转码服务时,客户对象存储所需的最小权限配置。

权限说明

转码服务在转码过程中需要访问客户的存储桶进行读写操作,具体需要以下权限:

操作类型说明
读取权限下载待转码文件
写入权限上传转码后的输出文件
分片上传权限大文件分片上传、断点续传相关操作

阿里云 OSS

参考文档:通过 RAM Policy 设置授权策略

所需权限列表

权限说明
oss:GetObject获取对象(下载文件)
oss:PutObject上传对象(上传文件)
oss:AbortMultipartUpload取消分片上传
oss:ListMultipartUploads列举分片上传任务
oss:ListParts列举已上传分片

策略配置示例

{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"oss:GetObject",
"oss:PutObject",
"oss:AbortMultipartUpload",
"oss:ListMultipartUploads",
"oss:ListParts"
],
"Resource": [
"acs:oss:*:*:your-bucket-name/*"
]
}
]
}

**注意:**请将 your-bucket-name 替换为您的实际存储桶名称。


腾讯云 COS

参考文档:腾讯云 CAM 策略

所需权限列表

权限说明
cos:HeadObject获取对象元数据
cos:GetObject获取对象(下载文件)
cos:PutObject上传对象(上传文件)
cos:InitiateMultipartUpload初始化分片上传
cos:UploadPart上传分片
cos:CompleteMultipartUpload完成分片上传
cos:ListParts列举已上传分片
cos:AbortMultipartUpload取消分片上传

策略配置示例

{
"version": "2.0",
"statement": [
{
"effect": "allow",
"action": [
"cos:HeadObject",
"cos:GetObject",
"cos:PutObject",
"cos:InitiateMultipartUpload",
"cos:UploadPart",
"cos:CompleteMultipartUpload",
"cos:ListParts",
"cos:AbortMultipartUpload"
],
"resource": [
"qcs::cos:::your-bucket-name/*"
]
}
]
}

**注意:**请将 your-bucket-name 替换为您的实际存储桶名称。


火山引擎 TOS

参考文档:访问策略(Policy)

所需权限列表

权限说明
tos:GetObject获取对象(下载文件)
tos:PutObject上传对象(上传文件)
tos:ListBucketMultipartUploads列举分片上传任务
tos:ListMultipartUploadParts列举已上传分片
tos:AbortMultipartUpload取消分片上传

策略配置示例

{
"Statement": [
{
"Effect": "Allow",
"Action": [
"tos:GetObject",
"tos:PutObject",
"tos:ListBucketMultipartUploads",
"tos:ListMultipartUploadParts",
"tos:AbortMultipartUpload"
],
"Resource": [
"trn:tos:*:*:your-bucket-name/*"
]
}
]
}

**注意:**请将 your-bucket-name 替换为您的实际存储桶名称。


金山云 KS3

参考文档:用户策略(User Policy)

所需权限列表

权限说明
ks3:GetObject获取对象(下载文件)
ks3:PutObject上传对象(上传文件)
ks3:ListBucketMultipartUploads列举分片上传任务
ks3:ListMultipartUploadParts列举已上传分片
ks3:AbortMultipartUpload取消分片上传

策略配置示例

{
"Version": "2015-11-01",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ks3:GetObject",
"ks3:PutObject",
"ks3:ListBucketMultipartUploads",
"ks3:ListMultipartUploadParts",
"ks3:AbortMultipartUpload"
],
"Resource": [
"krn:ksc:ks3:::your-bucket-name/*"
]
}
]
}

**注意:**请将 your-bucket-name 替换为您的实际存储桶名称。


AWS S3

参考文档:Multipart Upload API and Permissions

所需权限列表

权限说明
s3:GetObject获取对象(下载文件)
s3:PutObject上传对象(上传文件)
s3:ListBucketMultipartUploads列举分片上传任务
s3:ListMultipartUploadParts列举已上传分片
s3:AbortMultipartUpload取消分片上传

策略配置示例

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:ListBucketMultipartUploads",
"s3:ListMultipartUploadParts",
"s3:AbortMultipartUpload"
],
"Resource": [
"arn:aws:s3:::your-bucket-name/*"
]
}
]
}

**注意:**请将 your-bucket-name 替换为您的实际存储桶名称。


Google Cloud Storage (GCS)

参考文档:IAM 权限和角色

与其他云存储不同,GCS 采用 IAM 角色授权机制。您需要先创建自定义角色并分配所需权限,然后创建服务账号,最后在存储桶级别将该角色授权给服务账号。

配置步骤

  1. 创建自定义角色

    • 进入 Google Cloud Console → IAM & Admin → Roles
    • 点击「创建角色」,填写角色名称和描述
  2. 分配权限

    • 在自定义角色中添加下表列出的所有权限
  3. 创建服务账号

    • 进入 IAM & Admin → Service Accounts
    • 点击「创建服务账号」,填写名称和描述
  4. 存储桶授权

    • 进入目标存储桶 → 点击「授予访问权限」
    • 添加服务账号邮箱,选择已创建的角色,点击「保存」
  5. 生成 HMAC Key

    • 进入 Cloud Console → Cloud Storage → Settings → Interoperability
    • 点击「Create a key for a service account」生成访问密钥

所需权限列表

权限说明
storage.objects.get获取对象(下载文件)
storage.objects.create创建对象(上传文件)
storage.objects.createContext创建对象上下文
storage.objects.delete删除对象
storage.objects.deleteContext删除对象上下文
storage.objects.list列举对象
storage.objects.update更新对象
storage.objects.updateContext更新对象上下文
storage.multipartUploads.create创建分片上传任务
storage.multipartUploads.list列举分片上传任务
storage.multipartUploads.listParts列举已上传分片
storage.multipartUploads.abort取消分片上传

角色权限配置示例

{
"title": "Transcode Service Role",
"description": "Role for media transcoding service to access GCS",
"stage": "GA",
"includedPermissions": [
"storage.objects.get",
"storage.objects.create",
"storage.objects.createContext",
"storage.objects.delete",
"storage.objects.deleteContext",
"storage.objects.list",
"storage.objects.update",
"storage.objects.updateContext",
"storage.multipartUploads.create",
"storage.multipartUploads.list",
"storage.multipartUploads.listParts",
"storage.multipartUploads.abort"
]
}

注意:

  • 请将示例中的参数替换为您的实际项目信息
  • HMAC Key 的 Access Key 和 Secret 将用于配置转码服务的 GCS 访问凭证

Linode Object Storage

参考文档:Define access and permissions using bucket policies

Linode Object Storage 兼容 AWS S3 API,因此权限配置与 AWS S3 完全一致

所需权限列表

权限说明
s3:GetObject获取对象(下载文件)
s3:PutObject上传对象(上传文件)
s3:ListBucketMultipartUploads列举分片上传任务
s3:ListMultipartUploadParts列举已上传分片
s3:AbortMultipartUpload取消分片上传

策略配置示例

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:ListBucketMultipartUploads",
"s3:ListMultipartUploadParts",
"s3:AbortMultipartUpload"
],
"Resource": [
"arn:aws:s3:::your-bucket-name/*"
]
}
]
}

**注意:**请将 your-bucket-name 替换为您的实际存储桶名称。


配置注意事项

  1. 存储桶名称:请将示例中的 your-bucket-name 替换为您的实际存储桶名称。

  2. 权限范围:以上权限为云转码服务的最小必需权限,仅包含文件读写和分片上传相关操作。

  3. Resource 格式:不同平台的资源 ARN 格式不同,请严格按照对应平台示例填写。

  4. 分片上传:分片上传相关权限用于大文件上传和断点续传功能,建议全部授予以确保上传稳定性。


故障排查

如遇权限相关错误,请检查:

  • Access Key 和 Secret Key 是否正确
  • 存储桶名称是否填写正确
  • 权限策略是否包含所有必需权限
  • 存储桶所在区域是否配置正确

如有其他问题,请联系 Visionular 技术支持团队。