使用AWS for PHP SDK实现Minio文件上传

本方案使用AWS的S3进行上传。

一:安装sdk文件

php 复制代码
composer require aws/aws-sdk-php

官方参考文档:Installing the AWS SDK for PHP Version 3 - AWS SDK for PHP

二:获取参数

1、获取 ak 、sk

2、创建存储桶

三:执行文件上传。

php 复制代码
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表单进行提交。