public function testDeleteImageUrlAccessDenied() { $this->expectFilenameTranslation('/gs/mybucket/photo.jpg', 'some_blob_key'); $req = new \google\appengine\ImagesDeleteUrlBaseRequest(); $resp = new \google\appengine\ImagesDeleteUrlBaseResponse(); $req->setBlobKey('some_blob_key'); $exception = new \google\appengine\runtime\ApplicationError(ImagesServiceError\ErrorCode::ACCESS_DENIED, 'a message'); $this->setExpectedException('\\google\\appengine\\api\\cloud_storage\\CloudStorageException', 'Access denied to image.'); $this->apiProxyMock->expectCall('images', 'DeleteUrlBase', $req, $exception); CloudStorageTools::deleteImageServingUrl('gs://mybucket/photo.jpg'); $this->apiProxyMock->verify(); }
public function testDeleteImageUrlUsingDefaultKeyword() { $gs_filename = 'gs://#default#/photo.jpg'; $this->expectGetDefaultBucketName('bucket'); $this->expectApcFetch('__DEFAULT_GCS_BUCKET_NAME__', false, false); $this->expectApcStore('__DEFAULT_GCS_BUCKET_NAME__', 'bucket', true); $this->expectFilenameTranslation('/gs/bucket/photo.jpg', 'some_blob_key'); $this->expectDeleteUrlBase('some_blob_key'); CloudStorageTools::deleteImageServingUrl($gs_filename); $this->apiProxyMock->verify(); }
public function delete() { $this->requiresLogin(); $user = Bootstrap::$main->user; $id = 0 + $this->id; $data = false; if ($id) { $data = $this->image()->get($id); } if (!$data) { $this->error(18); } if ($data['user'] != $user['id']) { $this->error(19); } if ($this->_appengine) { $file = 'gs://' . CloudStorageTools::getDefaultGoogleStorageBucketName() . '/' . $data['src']; CloudStorageTools::deleteImageServingUrl($file); } else { $file = $this->_media_dir . '/' . $data['src']; $ext = @end(explode('.', $file)); @unlink(preg_replace("/\\.{$ext}\$/", '-t.' . $ext, $file)); @unlink(preg_replace("/\\.{$ext}\$/", '-s.' . $ext, $file)); } @unlink($file); $this->image()->remove($data['id']); return $this->status(); }