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); } ?>