/** * 获取一个 Object 的内容 * * @param string $bucket Bucket 名称 * @param string $uri Object 名称 * @param mixed $saveTo 文件保存到的文件名或者句柄 * @return mixed 返回服务端返回的 response,其中 headers 为 Object 的属性信息,body 为 Object 的内容 */ public static function getObject($bucket, $uri, $saveTo = false) { $rest = new StorageRequest('GET', self::$__account, $bucket, $uri, self::$endpoint); if ($saveTo !== false) { if (is_resource($saveTo)) { $rest->fp =& $saveTo; } else { if (($rest->fp = @fopen($saveTo, 'wb')) !== false) { $rest->file = realpath($saveTo); } else { $rest->response->error = array('code' => 0, 'message' => 'Unable to open save file for writing: ' . $saveTo); } } } if ($rest->response->error === false) { $rest->getResponse(); } if ($rest->response->error === false && $rest->response->code !== 200) { $rest->response->error = array('code' => $rest->response->code, 'message' => 'Unexpected HTTP status'); } if ($rest->response->error !== false) { self::__triggerError(sprintf("Storage::getObject({$bucket}, {$uri}): [%s] %s", $rest->response->error['code'], $rest->response->error['message']), __FILE__, __LINE__); return false; } return $rest->response; }