七牛云私有空间文件下载

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

针对七牛目前的私有空间、原图保护,如果希望 下载该类型或者开启原图保护下的空间下的文件资源,则需要进行签名后才能进行访问下载。


思路

创建自定义域名并绑定到一个空间上,即可通过该域名访问该空间下的文件资源;即:获取该文件资源的url,获取该url后,需要使用七牛提供的auth对象,获取下载的url——downloadUrl
通过http请求,根据downloadUrl 发送get请求进行下载。
注:测试也可以用七牛提供的测试域名,但不建议使用到实际项目中。


提示:以下是本篇文章正文内容,下面案例可供参考

使用步骤

代码如下(示例):

	/**
		targetUrl:
			格式:http://<domain>/<key>
			其中<domain>是 bucket 所对应的域名。七牛会给每个 bucket 分配一个测试域名,但由于 测试
			域名的访问限制,生产环境需要 绑定自定义域名 访问。 <key>可理解为文件名,但可包含文件分隔
			符等其它字符。
		注意: key必须采用utf8编码,如使用非utf8编码访问七牛云将反馈错误
	*/
    public String getDownloadUrl(String targetUrl) {
    	//根据密钥配置,获取Auth对象
        Auth auth = Auth.create(AccountMgr.ACCESS_KEY, AccountMgr.SECRET_KEY);
        //获取下载文件路径,即:donwloadUrl
        String downloadUrl = auth.privateDownloadUrl(targetUrl);
        return downloadUrl;
    }

总结

当您将空间设置成私有时,必须获得授权,才能对空间内的资源进行访问。

  私有资源下载是通过HTTP GET的方式访问特定的 URL。私有资源URL与公开资源URL相比只是增加了两个参数e和token,分别表示过期时间和下载凭证。一个完整的私有资源 URL 如下所示:

http://<domain>/<key>?e=<deadline>&token=<downloadToken>

  参数e表示 URL 的过期时间,采用Unix时间戳,单位为秒。超时的访问将返回 401 错误。参数token表示下载凭证。下载凭证是对资源访问的授权,不带下载凭证或下载凭证不合法都会导致 401 错误,表示验证失败。

注意:

  1. 如果请求方的时钟未校准,可能会造成有效期验证不正常,例如直接认为已过期。因此需要进行时钟校准。
  2. 由于开发者无法保证客户端的时间都校准,所以应该在业务服务器上创建时间戳,并周期性校准业务服务器时钟。
  3. token 必须放在请求的最后,token 之后的参数会被忽略。以请求
    http://test.cinem.net/aaaa.jpg?e=1778754963&token=sQvk4AXf0rEkzcytkr…XjI0M:zwvwiM0wsMBRj46xcby05U=&attname=geral_TS-PFS3010-8ET为例,此时attname=geral_TS-PFS3010-8ET会被忽略,并不生效
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值