private function generateSignableResource($options)
{
$signableResource = "";
$signableResource .= '/';
if (isset($options[self::OSS_BUCKET]) && '' !== $options[self::OSS_BUCKET]) {
$signableResource .= $options[self::OSS_BUCKET];
// 如果操作没有Object操作的话,这里最后是否有斜线有个trick,ip的域名下,不需要加'/', 否则需要加'/'
if ($options[self::OSS_OBJECT] == '/') {
if ($this->hostType !== self::OSS_HOST_TYPE_IP) {
$signableResource .= "/";
}
}
}
//signable_resource + object
if (isset($options[self::OSS_OBJECT]) && '/' !== $options[self::OSS_OBJECT]) {
$signableResource .= '/' . str_replace(array('%2F', '%25'), array('/', '%'), rawurlencode($options[self::OSS_OBJECT]));
}
if (isset($options[self::OSS_SUB_RESOURCE])) {
$signableResource .= '?' . $options[self::OSS_SUB_RESOURCE];
}
return $signableResource;
}