From ae9968fc6222c4e96429d53273d95ed04d2b0f0f Mon Sep 17 00:00:00 2001 From: Malay Damani Date: Wed, 25 Oct 2023 09:50:00 +0530 Subject: [PATCH 1/3] IBM cloud storage push --- docker-compose.yml | 4 +- src/Storage/Device/IBMCloudObject.php | 58 +++++++++++++++++++++ src/Storage/Storage.php | 2 + tests/Storage/Device/IBMCloudObjectTest.php | 34 ++++++++++++ 4 files changed, 97 insertions(+), 1 deletion(-) create mode 100644 src/Storage/Device/IBMCloudObject.php create mode 100644 tests/Storage/Device/IBMCloudObjectTest.php diff --git a/docker-compose.yml b/docker-compose.yml index 4cd5e9f7..764563c1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -20,4 +20,6 @@ services: - BACKBLAZE_ACCESS_KEY - BACKBLAZE_SECRET - WASABI_ACCESS_KEY - - WASABI_SECRET \ No newline at end of file + - WASABI_SECRET + - CEPH_ACCESS_KEY + - CEPH_SECRET \ No newline at end of file diff --git a/src/Storage/Device/IBMCloudObject.php b/src/Storage/Device/IBMCloudObject.php new file mode 100644 index 00000000..ae365afa --- /dev/null +++ b/src/Storage/Device/IBMCloudObject.php @@ -0,0 +1,58 @@ +headers['host'] = $bucket.'.'.$region.'.'.'cloud.ibm.com'; + } + + /** + * @return string + */ + public function getName(): string + { + return 'IBM Cloud Object Storage'; + } + + /** + * @return string + */ + public function getDescription(): string + { + return 'IBM Cloud Object Storage'; + } + + /** + * @return string + */ + public function getType(): string + { + return Storage::DEVICE_IBM_CLOUD_OBJECT; + } +} \ No newline at end of file diff --git a/src/Storage/Storage.php b/src/Storage/Storage.php index cabd18c8..2bcdff90 100644 --- a/src/Storage/Storage.php +++ b/src/Storage/Storage.php @@ -21,6 +21,8 @@ class Storage const DEVICE_LINODE = 'linode'; + const DEVICE_IBM_CLOUD_OBJECT = 'IBM Cloud Object Storage'; + /** * Devices. * diff --git a/tests/Storage/Device/IBMCloudObjectTest.php b/tests/Storage/Device/IBMCloudObjectTest.php new file mode 100644 index 00000000..6b751c88 --- /dev/null +++ b/tests/Storage/Device/IBMCloudObjectTest.php @@ -0,0 +1,34 @@ +root = '/root'; + $key = $_SERVER['CEPH_ACCESS_KEY'] ?? ''; + $secret = $_SERVER['CEPH_SECRET'] ?? ''; + $bucket = 'storage-test'; + + $this->object = new Linode($this->root, $key, $secret, $bucket, Linode::AP_SOUTH_1, Linode::ACL_PRIVATE); + } + + protected function getAdapterName(): string + { + return 'IBM Cloud Object Storage'; + } + + protected function getAdapterType(): string + { + return $this->object->getType(); + } + + protected function getAdapterDescription(): string + { + return 'IBM Cloud Object Storage'; + } +} From 636d2ae38ff04a99bee88df772b9f60285a159bb Mon Sep 17 00:00:00 2001 From: Malay Damani Date: Wed, 25 Oct 2023 10:04:35 +0530 Subject: [PATCH 2/3] updated incorrect class name --- tests/Storage/Device/IBMCloudObjectTest.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/Storage/Device/IBMCloudObjectTest.php b/tests/Storage/Device/IBMCloudObjectTest.php index 6b751c88..a7257492 100644 --- a/tests/Storage/Device/IBMCloudObjectTest.php +++ b/tests/Storage/Device/IBMCloudObjectTest.php @@ -2,10 +2,10 @@ namespace Utopia\Tests\Storage\Device; -use Utopia\Storage\Device\Linode; +use Utopia\Storage\Device\IBMCloudObject; use Utopia\Tests\Storage\S3Base; -class LinodeTest extends S3Base +class IBMCloudObjectTest extends S3Base { protected function init(): void { @@ -14,7 +14,7 @@ protected function init(): void $secret = $_SERVER['CEPH_SECRET'] ?? ''; $bucket = 'storage-test'; - $this->object = new Linode($this->root, $key, $secret, $bucket, Linode::AP_SOUTH_1, Linode::ACL_PRIVATE); + $this->object = new IBMCloudObject($this->root, $key, $secret, $bucket, Linode::AP_SOUTH_1, Linode::ACL_PRIVATE); } protected function getAdapterName(): string From a7550e44f4d9abba6947df3266195377f837e388 Mon Sep 17 00:00:00 2001 From: Malay Damani Date: Wed, 25 Oct 2023 10:06:21 +0530 Subject: [PATCH 3/3] fixed incorrect params --- tests/Storage/Device/IBMCloudObjectTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Storage/Device/IBMCloudObjectTest.php b/tests/Storage/Device/IBMCloudObjectTest.php index a7257492..36bd4a62 100644 --- a/tests/Storage/Device/IBMCloudObjectTest.php +++ b/tests/Storage/Device/IBMCloudObjectTest.php @@ -14,7 +14,7 @@ protected function init(): void $secret = $_SERVER['CEPH_SECRET'] ?? ''; $bucket = 'storage-test'; - $this->object = new IBMCloudObject($this->root, $key, $secret, $bucket, Linode::AP_SOUTH_1, Linode::ACL_PRIVATE); + $this->object = new IBMCloudObject($this->root, $key, $secret, $bucket, IBMCloudObject::AP_SOUTH_1, IBMCloudObject::ACL_PRIVATE); } protected function getAdapterName(): string