使用AWS for PHP SDK实现Minio文件上传
本方案使用AWS的S3进行上传。
一:安装sdk文件
composer require aws/aws-sdk-php
官方参考文档:Installing the AWS SDK for PHP Version 3 - AWS SDK for PHP
二:获取参数
1、获取 ak 、sk
2、创建存储桶
三:执行文件上传。
function minioUploadFiles($files){require_once("/vendor/autoload.php");$rand=rand(0,100000);$name=time().$rand.'.jpg';$s3 = new Aws\S3\S3Client(['version' => 'latest','region' => 'us-east-1','endpoint' => 'http://localhost:9000', //把localhost改为minio存储服务器的ip地址或域名,端口默认9000'use_path_style_endpoint' => true,'credentials' => ['key' => 'sBAHk******49IO', //替换为自己的ak'secret' => 'EYzOiKMdTf***********Kin3IW80uh', // 替换为自己的sk],]);try{// 发送PutObject请求并获得result对象$insert = $s3->putObject(['Bucket' => 'live***bucket', //替换为自己的存储桶名称'Key' => $name,'Body' => fopen($files['tmp_name'], 'r')]);$name="minio_".$name; //加minio_前缀是为了对文件名做标记,可根据自己实际情况选择保留或删除return $name;}catch(\Exception $e){return false;}
}
四:调用上传。
可以使用ajax进行上传,也可以使用form表单进行提交。