对象存储

  • 对象存储 > 常见问题 > 其他 >带图片样式的私有空间文件授权

    带图片样式的私有空间文件授权

    最近更新时间:2017-09-30 17:44:53

    带图片样式的私有空间授权

    本文介绍了当使用了拼接了数据处理或者图片样式如何进行签名授权。

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

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

    当使用了七牛的实时数据处理功能或者拼接了图片样式时在 sdk 中进行签名授权时需要带拼接参数进行一起进行签名授权。不能在原文件签名后进行拼接参数。

    如 私用空间中的文件为

    原文件: http://xxx.qiniu.xxx/qiniu.jpg

    数据处理: http://xxx.qiniu.xxx/qiniu.jpg?imageslim

    图片样式: http://xxx.qiniu.xxx/qiniu.jpg-style

    文件另存下载 http://xxx.qiniu.xxx/qiniu.jpg?attname=lhs.jpg

    正确的使用:http://xxx.qiniu.xxx/qiniu.jpg?imageslim&e=xxxx&token=xxxx

    错误的使用: http://xxx.qiniu.xxx/qiniu.jpg?e=xxxx&token=xxxxx?imageslim


    以 php-sdk 为例,其中的 baseUrl 需要为拼接参数后的 url

    <?php
    require_once __DIR__ . '/../autoload.php';
    use Qiniu\Auth;
    $accessKey = getenv('QINIU_ACCESS_KEY');
    $secretKey = getenv('QINIU_SECRET_KEY');
    // 构建Auth对象
    $auth = new Auth($accessKey, $secretKey);
    // 私有空间中的外链 http://<domain>/<file_key>
    
    $baseUrl = 'http://xxx.qiniu.xxx/qiniu.jpg';
    //签名时的Url需要为拼接参数后的url后进行签名
    //$baseUrl= 'http://xxx.qiniu.xxx/qiniu.jpg?imageslim';
    //$baseUrl = 'http://xxx.qiniu.xxx/qiniu.jpg-style';
    //$baseUrl = 'http://xxx.qiniu.xxx/qiniu.jpg?attname=lhs.jpg';
    
    // 对链接进行签名
    $signedUrl = $auth->privateDownloadUrl($baseUrl);
    echo $signedUrl;
    
    以上内容是否对您有帮助?
  • Qvm free helper
    Close