globalxtreme / php-storage
GlobalXtreme Storage Package for PHP Language
Installs: 222
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/globalxtreme/php-storage
Requires
- php: 8.*
- guzzlehttp/guzzle: ^7.5|^7.8|^7.9
- illuminate/support: ^8|^9|^10|^11|^12
- symfony/http-foundation: ^5.3|^6|^7
- vlucas/phpdotenv: ^4.0|5.*
README
Install with composer
To install with Composer, simply require the latest version of this package.
composer require globalxtreme/php-storage
Using
- Setup .env.
STORAGE_BASE_URL=<storage-api-gateway> // OPTIONAL STORAGE_BASE_URL_EXTERNAL=<storage-api-gateway-external> // OPTIONAL STORAGE_CLIENT_ID=<your-client-id> STORAGE_CLIENT_SECRET=<your-client-secret>
- In laravel.
use App\Http\Controllers\Controller; use App\Http\Request; use GlobalXtreme\PHPStorage\GXStorage; class CustomController extends Controller { public function testing(Request $request) { // Store from parameter request $store = GXStorage::store(new GXStorageForm( file: $request->file('file'), // Required: Ambil langsung dari parameter request path: "images/attachments/", // Required: Isi dengan path dimana kamu mau simpan file ini. pastikan path sudah terdaftar dan locked mimeType: "image/jpeg", // Optional: Jika bisa langsung kirim juga untuk meringankan beban public storage savedUntil: 10, // Optional: Isi jika ingin menghapus setelah disimpan selama beberapa hari title: "", // Optional: Isi jika perlu title ownerId: "", // Optional: Isi jika ingin menentukan pemilik file dan agar saat folder di lock dengan password, pemilik file tidak perlu memasukan password ownerType: "", // Optional: (employee, customer). Hanaya untuk identifikasi id yang dikirim adalah employee atau customer createdBy: "", // Optional: Isi jika kamu perlu menyimpan siapa yang upload file tersebut createdByName: "", // Optional: Isi jika kamu perlu menyimpan siapa yang upload file tersebut reference: "", // Optional: Ini berfungsi agar saat file dihapus di public storage, server / pemilik file bisa tahu tabel mana yang harus dihapus link nya referenceType: "", // Optional: Ini berfungsi agar saat file dihapus di public storage, server / pemilik file bisa tahu tabel mana yang harus dihapus link nya external: true, // Optional: Isi jika ingin menyimpan dan mengkases link dengan url / domain public (gunakan jika ingin mengirim link ke customer) )); // Store from file path $store = GXStorage::store(new GXStorageForm( file: storage_path('path/to/filename'), // Required: Ambil langsung dari parameter request path: "images/attachments/", // Required: Isi dengan path dimana kamu mau simpan file ini. pastikan path sudah terdaftar dan locked mimeType: "image/jpeg", // Optional: Jika bisa langsung kirim juga untuk meringankan beban public storage savedUntil: 10, // Optional: Isi jika ingin menghapus setelah disimpan selama beberapa hari title: "", // Optional: Isi jika perlu title ownerId: "", // Optional: Isi jika ingin menentukan pemilik file dan agar saat folder di lock dengan password, pemilik file tidak perlu memasukan password ownerType: "", // Optional: (employee, customer). Hanaya untuk identifikasi id yang dikirim adalah employee atau customer createdBy: "", // Optional: Isi jika kamu perlu menyimpan siapa yang upload file tersebut createdByName: "", // Optional: Isi jika kamu perlu menyimpan siapa yang upload file tersebut reference: "", // Optional: Ini berfungsi agar saat file dihapus di public storage, server / pemilik file bisa tahu tabel mana yang harus dihapus link nya referenceType: "", // Optional: Ini berfungsi agar saat file dihapus di public storage, server / pemilik file bisa tahu tabel mana yang harus dihapus link nya external: true, // Optional: Isi jika ingin menyimpan dan mengkases link dengan url / domain public (gunakan jika ingin mengirim link ke customer) )); // Copy file to another service $copy = GXStorage::copyToAnotherService(new GXStorageMoveCopyToAnotherServiceForm( file: "https://dev.storage.globalxtreme-gateway.net/link/path/filename", // Required: full path (link) yang ingin di copy toClientId: 111111111111, // Required: Client id tempat tujuan file di copy toPath: "photos/attachments/" // Required: Path tempat file ingin di copy )); // Move file to another service $move = GXStorage::moveToAnotherService(new GXStorageMoveCopyToAnotherServiceForm( file: "https://dev.storage.globalxtreme-gateway.net/link/path/filename", // Required: full path (link) yang ingin di copy toClientId: 111111111111, // Required: Client id tempat tujuan file di copy toPath: "photos/attachments/" // Required: Path tempat file ingin di copy )); // Copy file from another service $copy = GXStorage::copyFromAnotherService(new GXStorageMoveCopyFromAnotherServiceForm( file: "https://dev.storage.globalxtreme-gateway.net/link/path/filename", // Required: full path (link) yang ingin di copy fromClientId: 111111111111, // Required: Client id tempat asal file di copy toPath: "photos/attachments/" // Required: Path tempat file ingin di copy )); // Move file from another service $move = GXStorage::moveFromAnotherService(new GXStorageMoveCopyFromAnotherServiceForm( file: "https://dev.storage.globalxtreme-gateway.net/link/path/filename", // Required: full path (link) yang ingin di copy fromClientId: 111111111111, // Required: Client id tempat asal file di copy toPath: "photos/attachments/" // Required: Path tempat file ingin di copy )); // Form untuk generate file zip menggunakan public storage links $zipForm = new GXStorageZIPForm( path: 'attachments/zips/', // Required: Isi dengan path tempat file zip ingin disimpan filename: 'contoh-file.zip', // Required: Isi dengan nama file zip yang dinginkan, ini berguna saat download file title: "", // Optional: Isi jika perlu title ownerId: "", // Optional: Isi jika ingin menentukan pemilik file dan agar saat folder di lock dengan password, pemilik file tidak perlu memasukan password ownerType: "", // Optional: (employee, customer). Hanaya untuk identifikasi id yang dikirim adalah employee atau customer reference: "", // Optional: Ini berfungsi agar saat file dihapus di public storage, server / pemilik file bisa tahu tabel mana yang harus dihapus link nya referenceType: "", // Optional: Ini berfungsi agar saat file dihapus di public storage, server / pemilik file bisa tahu tabel mana yang harus dihapus link nya createdBy: "", // Optional: Isi jika kamu perlu menyimpan siapa yang upload file tersebut createdByName: "", // Optional: Isi jika kamu perlu menyimpan siapa yang upload file tersebut savedUntil: 10, // Optional: Isi jika ingin menghapus setelah disimpan selama beberapa hari external: true, // Optional: Isi jika ingin menyimpan dan mengkases link dengan url / domain public (gunakan jika ingin mengirim link ke customer) ); // Daftarkan file-file yang ingin kamu masukan ke dalam zip. (MINIMAL 1 FILE) $zipForm->setFile( filename: 'INVOICE-1111111.pdf', // Required: Isi dengan nama file yang ingin kamu simpan nanti di zip link: 'https://dev.storage.globalxtreme-gateway.net/link/path/filename', // Required: Isi dengan full link yang kamu dapatkan dari public storage (PASTIKAN LINK NYA BENAR) ); $zipForm->setFile( filename: 'INVOICE-22222222.pdf', // Required: Isi dengan nama file yang ingin kamu simpan nanti di zip link: 'https://dev.storage.globalxtreme-gateway.net/link/path/filename', // Required: Isi dengan full link yang kamu dapatkan dari public storage (PASTIKAN LINK NYA BENAR) ); $zip = GXStorage::generateZIP($zipForm) // 200 $store->status; // Success $store->message; // inventories/pdf/4z0Zw5FUCrWfC9oQiian1686389620255618000.xlsx $store->path; // https://storage.globalxtreme-gateway.net/storages/inventories/pdf/4z0Zw5FUCrWfC9oQiian1686389620255618000.xlsx $store->fullPath; // Title $store->title; // Saved Until $store->savedUntil; // Delete file $delete = GXStorage::delete("inventories/pdf/4z0Zw5FUCrWfC9oQiian1686389620255618000.xlsx"); // 200 $delete->status; } }
- In PHP Native
include("vendor/autoload.php") use GlobalXtreme\PHPStorage\GXStorage; // Load .env file $dotenv = Dotenv\Dotenv::createImmutable(__DIR__); $dotenv->safeLoad(); // Store from file path $store = GXStorage::store(new GXStorageForm( file: $_FILES['file']['tmp_name'], // Required: Ambil langsung dari parameter request path: "images/attachments/", // Required: Isi dengan path dimana kamu mau simpan file ini. pastikan path sudah terdaftar dan locked originalName: $_FILES['file']['original_name'], // Optional: Isi jika perlu menyimpan original name juga mimeType: "image/jpeg", // Optional: Jika bisa langsung kirim juga untuk meringankan beban public storage savedUntil: 10, // Optional: Isi jika ingin menghapus setelah disimpan selama beberapa hari title: "", // Optional: Isi jika perlu title ownerId: "", // Optional: Isi jika ingin menentukan pemilik file dan agar saat folder di lock dengan password, pemilik file tidak perlu memasukan password ownerType: "", // Optional: (employee, customer). Hanaya untuk identifikasi id yang dikirim adalah employee atau customer createdBy: "", // Optional: Isi jika kamu perlu menyimpan siapa yang upload file tersebut createdByName: "", // Optional: Isi jika kamu perlu menyimpan siapa yang upload file tersebut )); // 200 $store->status; // Success $store->message; // inventories/pdf/4z0Zw5FUCrWfC9oQiian1686389620255618000.xlsx $store->path; // https://storage.globalxtreme-gateway.net/storages/inventories/pdf/4z0Zw5FUCrWfC9oQiian1686389620255618000.xlsx $store->fullPath; // Title $store->title; // Saved Until $store->savedUntil; // Delete file $delete = GXStorage::delete("inventories/pdf/4z0Zw5FUCrWfC9oQiian1686389620255618000.xlsx"); // 200 $delete->status;