OSS\OssClient::signUrl PHP Method

signUrl() public method

支持生成get和put签名, 用户可以生成一个具有一定有效期的 签名过的url
public signUrl ( string $bucket, string $object, integer $timeout = 60, string $method = self::OSS_HTTP_GET, array $options = NULL ) : string
$bucket string
$object string
$timeout integer
$method string
$options array Key-Value数组
return string
    public function signUrl($bucket, $object, $timeout = 60, $method = self::OSS_HTTP_GET, $options = NULL)
    {
        $this->precheckCommon($bucket, $object, $options);
        //method
        if (self::OSS_HTTP_GET !== $method && self::OSS_HTTP_PUT !== $method) {
            throw new OssException("method is invalid");
        }
        $options[self::OSS_BUCKET] = $bucket;
        $options[self::OSS_OBJECT] = $object;
        $options[self::OSS_METHOD] = $method;
        if (!isset($options[self::OSS_CONTENT_TYPE])) {
            $options[self::OSS_CONTENT_TYPE] = '';
        }
        $timeout = time() + $timeout;
        $options[self::OSS_PREAUTH] = $timeout;
        $options[self::OSS_DATE] = $timeout;
        $this->setSignStsInUrl(true);
        return $this->auth($options);
    }

Usage Example

 /**
  * Get the signed download url of a file.
  *
  * @param string $path
  * @param int    $expires
  * @param string $host_name
  * @param bool   $use_ssl
  * @return string
  */
 public function getSignedDownloadUrl($path, $expires = 3600, $host_name = '', $use_ssl = false)
 {
     $object = $this->applyPathPrefix($path);
     $url = $this->client->signUrl($this->bucket, $object, $expires);
     if (!empty($host_name) || $use_ssl) {
         $parse_url = parse_url($url);
         if (!empty($host_name)) {
             $parse_url['host'] = $this->bucket . '.' . $host_name;
         }
         if ($use_ssl) {
             $parse_url['scheme'] = 'https';
         }
         $url = (isset($parse_url['scheme']) ? $parse_url['scheme'] . '://' : '') . (isset($parse_url['user']) ? $parse_url['user'] . (isset($parse_url['pass']) ? ':' . $parse_url['pass'] : '') . '@' : '') . (isset($parse_url['host']) ? $parse_url['host'] : '') . (isset($parse_url['port']) ? ':' . $parse_url['port'] : '') . (isset($parse_url['path']) ? $parse_url['path'] : '') . (isset($parse_url['query']) ? '?' . $parse_url['query'] : '');
     }
     return $url;
 }
All Usage Examples Of OSS\OssClient::signUrl