From 768e93bc98dda56dfe2e812ed789755c8516b7e7 Mon Sep 17 00:00:00 2001 From: andri Date: Mon, 15 Sep 2025 04:34:25 +0000 Subject: [PATCH] Add pure_php_neo.php --- pure_php_neo.php | 88 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 pure_php_neo.php diff --git a/pure_php_neo.php b/pure_php_neo.php new file mode 100644 index 0000000..2b81dc1 --- /dev/null +++ b/pure_php_neo.php @@ -0,0 +1,88 @@ +bucket = $bucket; + + $this->s3Client = new S3Client([ + 'version' => 'latest', + 'region' => 'wjv-1', + 'endpoint' => $endpoint, + 'credentials' => [ + 'key' => $access_key, + 'secret' => $secret_key, + ], + 'use_path_style_endpoint' => true, + 'http' => [ + 'verify' => false // Disable SSL verification + ] + ]); + } + + public function uploadFile($file, $key) { + try { + $result = $this->s3Client->putObject([ + 'Bucket' => $this->bucket, + 'Key' => $key, + 'SourceFile' => $file, + 'ACL' => 'public-read' + ]); + + return [ + 'success' => true, + 'url' => $result['ObjectURL'] + ]; + } catch (AwsException $e) { + return [ + 'success' => false, + 'error' => $e->getMessage() + ]; + } + } + + public function listFiles($prefix = '') { + try { + $result = $this->s3Client->listObjectsV2([ + 'Bucket' => $this->bucket, + 'Prefix' => $prefix + ]); + + $files = []; + foreach ($result['Contents'] ?? [] as $object) { + $files[] = [ + 'key' => $object['Key'], + 'size' => $object['Size'], + 'modified' => $object['LastModified']->format('Y-m-d H:i:s') + ]; + } + + return ['success' => true, 'files' => $files]; + } catch (AwsException $e) { + return ['success' => false, 'error' => $e->getMessage()]; + } + } +} + +// Usage +$neo = new NeoObjectStorage( + 'your_access_key', + 'your_secret_key', + 'http://nos.wjv-1.neo.id', + 'your-bucket' +); + +// Upload +if ($_FILES['file']) { + $key = 'uploads/' . time() . '_' . $_FILES['file']['name']; + $result = $neo->uploadFile($_FILES['file']['tmp_name'], $key); + echo json_encode($result); +} +?> \ No newline at end of file