php 操作minio

分享一个用php写的操作minio客户端的脚本,提供一些针对minio的基本操作。

列出所有的bucket

新建bucket

获取指定bucket的acl规则

删除bucket

上传文件

获取指定文件的url

删除文件

minio支持亚马逊s3对象存储,所以先安装aws s3客户端sdk

aws s3 sdk 文档:

         https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html

[root@centos7-4 composer]# cat composer.json 
{
    "require": {
        "aws/aws-sdk-php": "^3.184"
    }
}
composer require aws/aws-sdk-php

minio.php

MultipartUploader需要用到xml,所以需要安装php的xml支持

yum install php70w-xml -y
<?php
require_once __DIR__."/aws-sdk-php/autoload.php";
use Aws\S3\S3Client;
use Aws\Exception\AwsException;
use Aws\S3\MultipartUploader;


$endpoint="IP:9000";
$key="xxxxxxxxxxxxxxxxxx";
$secret="SSSSSSSSSSSSSSSSSSSSS";
$bucket="testbucket";

$s3Client = new  Aws\S3\S3Client([
        'version' => 'latest',
        'region'  => 'us-east-1',
        'endpoint' => "$endpoint",
        'use_path_style_endpoint' => true,
        'credentials' => [
                'key'    => "$key",
                'secret' => "$secret",
        ],
]);

function getBuckets(){
        global $s3Client;
        $result = $s3Client->listBuckets();
        $names = $result->search('Buckets[].Name');
        return $names;
}

function createBucket($bucket){
        global $s3Client;
        $result = $s3Client->createBucket([
            'Bucket' => $bucket,
        ]);
}

function getBucketAcl($bucket){
        global $s3Client;
        $result=$s3Client->getBucketAcl([
                'Bucket' => $bucket
        ]);
        return $result;

}

function upLoadFile($file,$object){
        global $s3Client;
        global $bucket;
        $uploader = new MultipartUploader($s3Client, $file, [
                'bucket' => $bucket,
                'key' => $object,
        ]);

        $result=$uploader->upload();
}
function getURL($object){
        global $s3Client;
        global $bucket;
        $cmd = $s3Client->getCommand('GetObject', [
                'Bucket' => $bucket,
                'Key' => $object
        ]);
        $request=$s3Client->createPresignedRequest($cmd,'+7 days');
        $presignedUrl = (string)$request->getUri();
        return $presignedUrl;
}
function deleteBucket($bucket){
        global $s3Client;
        $result = $s3Client->deleteBucket([
            'Bucket' => $bucket,
        ]);

}
function deleteObject($object){
        global $s3Client;
        global $bucket;
        $result = $s3Client->deleteObject([
            'Bucket' => $bucket,
            'Key' => $object,
        ]);


}
#测试脚本demo
/*
#getBuckets list
$test=getBuckets();
print_r($test);
#createBucket
$test=createBucket("test");
#getBucketAcl
$test=getBucketAcl("test");
print_r($test);
#upLoadFile
$file="./test.php";
$object="test.php";
$test=upLoadFile($file,$object);
#getURL
$test=getURL($object);
print_r($test);
#deleteBucket
$test=deleteBucket("test");
#deleteObject
$test=deleteObject("test.php");
*/

?>

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值