Add objectExists to objectstore interface
Signed-off-by: Robin Appelman <robin@icewind.nl>
This commit is contained in:
parent
71df6233cf
commit
6c9f2644cf
|
@ -115,4 +115,17 @@ class Azure implements IObjectStore {
|
||||||
public function deleteObject($urn) {
|
public function deleteObject($urn) {
|
||||||
$this->getBlobClient()->deleteBlob($this->containerName, $urn);
|
$this->getBlobClient()->deleteBlob($this->containerName, $urn);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function objectExists($urn) {
|
||||||
|
try {
|
||||||
|
$this->getBlobClient()->getBlobMetadata($this->containerName, $urn);
|
||||||
|
return true;
|
||||||
|
} catch (ServiceException $e) {
|
||||||
|
if ($e->getCode() === 404) {
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
throw $e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -90,4 +90,8 @@ trait S3ObjectTrait {
|
||||||
'Key' => $urn
|
'Key' => $urn
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function objectExists($urn) {
|
||||||
|
return $this->getConnection()->doesObjectExist($this->bucket, $urn);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -89,4 +89,7 @@ class StorageObjectStore implements IObjectStore {
|
||||||
$this->storage->unlink($urn);
|
$this->storage->unlink($urn);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function objectExists($urn) {
|
||||||
|
return $this->storage->file_exists($urn);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -128,4 +128,7 @@ class Swift implements IObjectStore {
|
||||||
$this->getContainer()->delete();
|
$this->getContainer()->delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function objectExists($urn) {
|
||||||
|
return $this->getContainer()->objectExists($urn);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,4 +63,13 @@ interface IObjectStore {
|
||||||
* @since 7.0.0
|
* @since 7.0.0
|
||||||
*/
|
*/
|
||||||
public function deleteObject($urn);
|
public function deleteObject($urn);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if an object exists in the object store
|
||||||
|
*
|
||||||
|
* @param string $urn
|
||||||
|
* @return bool
|
||||||
|
* @since 16.0.0
|
||||||
|
*/
|
||||||
|
public function objectExists($urn);
|
||||||
}
|
}
|
||||||
|
|
|
@ -94,4 +94,19 @@ abstract class ObjectStoreTest extends TestCase {
|
||||||
$this->assertEquals(1, 1);
|
$this->assertEquals(1, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testExists() {
|
||||||
|
$stream = $this->stringToStream('foobar');
|
||||||
|
|
||||||
|
$instance = $this->getInstance();
|
||||||
|
$this->assertFalse($instance->objectExists('2'));
|
||||||
|
|
||||||
|
$instance->writeObject('2', $stream);
|
||||||
|
|
||||||
|
$this->assertTrue($instance->objectExists('2'));
|
||||||
|
|
||||||
|
$instance->deleteObject('2');
|
||||||
|
|
||||||
|
$this->assertFalse($instance->objectExists('2'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue