分享文件 本节主要介绍分享文件。 应用场景 在存储桶(Bucket)为私有情况下,只有根用户或有权限的子用户能够读取存储桶内的全部文件(Object),如果其他用户想访问存储桶内文件,例如: 某一子用户需要访问存储桶下某一前缀下的全部文件。 匿名用户需要临时访问存储桶内的某一文件。 限定某一根用户只有在使用某Referer头时才可以访问某一存储桶内的全部文件。 在存储桶为公共读的情况下,任何人(包括匿名)可以访问存储桶中的文件。除通过直接访问外,也可以通过分享链接的模式:通过共享链接或url访问存储桶内文件的场景。 前提条件 开通对象存储(经典版)Ⅰ型服务。 具体操作 存储桶(Bucket)为私有 存储桶(Bucket)为私有时,可以通过以下方式授权他人访问存储桶中的文件: 生成共享链接 在自服务控制台,点击需要分享的文件后的分享按钮。 在文件分享弹窗中输入过期时间,取值[1, 9999999]。可以选择开启限制下载速度和限制下载并发数,取值[1,2147483647]。点击生成,然后点击复制即可分享给他人。 通过API分享,详见生成共享链接。 设置Bucket Policy 如果某用户需要访问私有Bucket内的全部文件或某一前缀下的文件,通过设置Bucket Policy可以实现。可以通过控制台,在存储桶属性安全策略中修改,或者通过API接口PUT Bucket Policy实现。 示例1:授权某一子用户(a1为账户a的子用户,账户a的用户ID为aaa11111111)访问examplebucket下以1为前缀的全部文件: { "Version":"20121017", "Statement":[ { "Sid":"Usera1GetObject", "Effect":"Allow", "Principal":{ "CTYUN":"arn:ctyun:iam::aaa11111111:user/a1" }, "Action":"oos:GetObject", "Resource":"arn:ctyun:oos:::examplebucket/1" } ] } 示例2:examplebucket为账户a的Bucket,授权天翼云账户c(用户ID为ccc11111111),仅Referer为 { "Version":"20121017", "Statement":[ { "Sid":"UsercGetObject", "Effect":"Allow", "Principal":{ "CTYUN":"arn:ctyun:iam::ccc11111111:root" }, "Action": "oos:GetObject", "Resource":"arn:ctyun:oos:::examplebucket/", "Condition":{ "StringLike":{ "ctyun:Referer":[ " " ] } } } ] }