Ejemplo n.º 1
0
 /**
  * 获取一个 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;
 }