install dependency dengan composer terlebih dahulu
Mengupload foto dengan PHP di R2
<?php
// Autoload composer
require 'vendor/autoload.php';
use Aws\S3\S3Client;
use Aws\Exception\AwsException;
// Konfigurasi untuk Cloudflare R2
$accessKey = 'accesskey'; // Access Key ID
$secretKey = 'secretkey'; // Secret Access Key
$bucketName = 'tong'; // Nama Bucket R2
$endpoint = 'https://userid.r2.cloudflarestorage.com'; // Endpoint R2
// Membuat client S3 menggunakan konfigurasi R2
$s3Client = new S3Client([
'version' => 'latest',
'region' => 'auto', // Cloudflare R2 menggunakan region 'auto'
'endpoint' => $endpoint, // Endpoint untuk R2
'credentials' => [
'key' => $accessKey,
'secret' => $secretKey,
],
'use_path_style_endpoint' => true, // R2 menggunakan path style
]);
// Nama file gambar yang akan diupload
$filePath = 'gambarbahan2.jpg'; // Ganti dengan path gambar yang akan diupload
$objectKey = 'uploads/gambarserver2.jpg'; // Nama file di R2
try {
// Mengupload file gambar ke R2
$result = $s3Client->putObject([
'Bucket' => $bucketName,
'Key' => $objectKey,
'SourceFile' => $filePath, // Path file lokal yang akan diupload
'ACL' => 'public-read', // Mengatur file agar dapat diakses publik (optional)
]);
echo "File berhasil diupload! URL: " . $result['ObjectURL'];
} catch (AwsException $e) {
// Menangani error
echo "Error: " . $e->getMessage();
}
?>
Mengambil dan Menyimpan gambar di server dari R2
<?php
// Autoload composer
require 'vendor/autoload.php';
use Aws\S3\S3Client;
use Aws\Exception\AwsException;
// Konfigurasi untuk Cloudflare R2
$accessKey = 'accesskey'; // Access Key ID
$secretKey = 'secretkey'; // Secret Access Key
$bucketName = 'tong'; // Nama Bucket R2
$endpoint = 'https://userid.r2.cloudflarestorage.com'; // Endpoint R2
// Membuat client S3 menggunakan konfigurasi R2
$s3Client = new S3Client([
'version' => 'latest',
'region' => 'auto', // Cloudflare R2 menggunakan region 'auto'
'endpoint' => $endpoint, // Endpoint untuk R2
'credentials' => [
'key' => $accessKey,
'secret' => $secretKey,
],
'use_path_style_endpoint' => true, // R2 menggunakan path style
]);
// Nama objek yang ingin diambil
$objectKey = 'image_fx_ (62).jpg';
try {
// Mengambil file dari R2 menggunakan getObject
$result = $s3Client->getObject([
'Bucket' => $bucketName,
'Key' => $objectKey,
]);
// Menyimpan file yang diambil ke file lokal
file_put_contents('file.jpg', $result['Body']);
echo "File berhasil diambil dan disimpan!";
} catch (AwsException $e) {
// Menangani error
echo "Error: " . $e->getMessage();
}
?>
List Folder di R2
<?php
// Autoload composer
require 'vendor/autoload.php';
use Aws\S3\S3Client;
use Aws\Exception\AwsException;
// Konfigurasi untuk Cloudflare R2
$accessKey = 'accesskey'; // Access Key ID
$secretKey = 'secretkey'; // Secret Access Key
$bucketName = 'tong'; // Nama Bucket R2
$endpoint = 'https://userid.r2.cloudflarestorage.com'; // Endpoint R2
// Membuat client S3 menggunakan konfigurasi R2
$s3Client = new S3Client([
'version' => 'latest',
'region' => 'auto',
'endpoint' => $endpoint,
'credentials' => [
'key' => $accessKey,
'secret' => $secretKey,
],
'use_path_style_endpoint' => true,
]);
// Nama folder yang ingin dilihat (contoh: "uploads/")
$folderPrefix = 'uploads/';
try {
// Mendapatkan daftar objek dalam folder (prefix) tertentu
$objects = $s3Client->listObjectsV2([
'Bucket' => $bucketName,
'Prefix' => $folderPrefix,
]);
// Mengecek apakah ada objek dalam folder tersebut
if (isset($objects['Contents']) && count($objects['Contents']) > 0) {
echo "Daftar file dalam folder '$folderPrefix':<br><br>";
// Menampilkan daftar file
foreach ($objects['Contents'] as $object) {
echo $object['Key'] . '<br>';
}
} else {
echo "Tidak ada file ditemukan di folder '$folderPrefix'.";
}
} catch (AwsException $e) {
echo "Error: " . $e->getMessage();
}
?>
Menampilkan gambar dari R2
<?php
// Autoload composer
require 'vendor/autoload.php';
use Aws\S3\S3Client;
use Aws\Exception\AwsException;
// Konfigurasi untuk Cloudflare R2
$accessKey = 'accesskey'; // Access Key ID
$secretKey = 'secretkey'; // Secret Access Key
$bucketName = 'tong'; // Nama Bucket R2
$endpoint = 'https://userid.r2.cloudflarestorage.com'; // Endpoint R2
// Membuat client S3 menggunakan konfigurasi R2
$s3Client = new S3Client([
'version' => 'latest',
'region' => 'auto',
'endpoint' => $endpoint,
'credentials' => [
'key' => $accessKey,
'secret' => $secretKey,
],
'use_path_style_endpoint' => true,
]);
// Nama objek (gambar) yang ingin diakses
$objectKey = 'ce.jpg'; // Ganti dengan nama file yang sesuai
try {
// Membuat pre-signed URL untuk mengakses file selama 1 jam
$command = $s3Client->getCommand('GetObject', [
'Bucket' => $bucketName,
'Key' => $objectKey,
]);
// Membuat pre-signed URL
$request = $s3Client->createPresignedRequest($command, '+1 hour');
// Mendapatkan URL yang dapat digunakan untuk mengakses file
$presignedUrl = (string) $request->getUri();
echo 'Pre-signed URL: ' . $presignedUrl;
} catch (AwsException $e) {
echo "Error: " . $e->getMessage();
}
?>
<img src="<?php echo $presignedUrl; ?>" alt="Gambar dari Cloudflare R2" />
Mengunduh dan ZIP file di folder R2
<?php
// Autoload composer
require 'vendor/autoload.php';
use Aws\S3\S3Client;
use Aws\Exception\AwsException;
// Konfigurasi untuk Cloudflare R2
$accessKey = 'accesskey'; // Access Key ID
$secretKey = 'secretkey'; // Secret Access Key
$bucketName = 'tong'; // Nama Bucket R2
$endpoint = 'https://userid.r2.cloudflarestorage.com'; // Endpoint R2
// Membuat client S3 menggunakan konfigurasi R2
$s3Client = new S3Client([
'version' => 'latest',
'region' => 'auto',
'endpoint' => $endpoint,
'credentials' => [
'key' => $accessKey,
'secret' => $secretKey,
],
'use_path_style_endpoint' => true,
]);
// Nama folder yang ingin dilihat (contoh: "uploads/")
$folderPrefix = 'uploads/';
$zipFileName = 'uploads.zip'; // Nama file ZIP yang akan dihasilkan
try {
// Mendapatkan daftar objek dalam folder (prefix) tertentu
$objects = $s3Client->listObjectsV2([
'Bucket' => $bucketName,
'Prefix' => $folderPrefix,
]);
// Mengecek apakah ada objek dalam folder tersebut
if (isset($objects['Contents']) && count($objects['Contents']) > 0) {
// Membuat file ZIP
$zip = new ZipArchive();
// Membuka file ZIP untuk penulisan
if ($zip->open($zipFileName, ZipArchive::CREATE) === TRUE) {
// Menambahkan setiap file dalam folder ke ZIP
foreach ($objects['Contents'] as $object) {
$objectKey = $object['Key'];
$fileName = basename($objectKey); // Ambil nama file dari key
// Mengambil file dari R2 dan menambahkannya ke ZIP
$result = $s3Client->getObject([
'Bucket' => $bucketName,
'Key' => $objectKey,
]);
$zip->addFromString($fileName, $result['Body']);
}
// Menutup file ZIP
$zip->close();
echo 'File ZIP berhasil dibuat. <a href="' . $zipFileName . '" download>Unduh ZIP</a>';
} else {
echo 'Gagal membuat file ZIP.';
}
} else {
echo "Tidak ada file ditemukan di folder '$folderPrefix'.";
}
} catch (AwsException $e) {
echo "Error: " . $e->getMessage();
}
?>
Top comments (0)