当前位置:首页 > 技术分享

宝塔搭建thinkphp 和 MinIO 私有云存储方案

admin1年前 (2025-04-18)技术分享928

当需要搭建私有云存储时MinIO 是一个不错的选择

MinIO 是一个高性能、轻量级对象存储服务器,专为大规模数据存储和分析而设计。它兼容 Amazon S3 API,可以无缝替代 Amazon S3 作为存储后端,并且支持在各种环境中部署,包括物理服务器、虚拟机、容器等。

1.安装

(1).在宝塔上安装Docker

(2).Docker应用商店中搜索MinIO 安装即可

2.在ThinkPHP6中使用亚马逊S3作为存储需要使用一个适合的库来与S3接口交互。这里我们可以使用league/flysystem-aws-s3-v3库来实现

composer require league/flysystem-aws-s3-v3  aws/aws-sdk-php

然后,在ThinkPHP6中配置S3存储驱动。在config目录下创建一个新的配置文件,例如filesystem.php,并配置S3相关信息:

// config/filesystem.php
return [
    'default' => 's3',
    'disks'   => [
        's3' => [
            'type' => 'AwsS3',
            'key' => 'your-aws-access-key-id',
            'secret' => 'your-aws-secret-access-key',
            'region' => 'your-aws-default-region', // 例如 ap-southeast-1
            'version' => 'latest',
            'bucket_endpoint' => false,
            'use_path_style_endpoint' => false,
            'endpoint' => 'https://s3.example.com', // 亚马逊S3的endpoint
            'bucket_name' => 'your-bucket',
        ],
        // 如果需要配置更多的磁盘,可以在这里添加
    ],
];

接下来,在应用中使用S3存储。例如,上传文件:

use League\Flysystem\Filesystem;
use League\Flysystem\AwsS3V3\AwsS3V3Adapter;
use Aws\S3\S3Client;
 
// 创建S3客户端
$s3 = new S3Client([
    'version' => 'latest',
    'region'  => 'your-aws-default-region',
    'credentials' => [
        'key'    => 'your-aws-access-key-id',
        'secret' => 'your-aws-secret-access-key',
    ],
]);
 
// 创建适配器
$adapter = new AwsS3Adapter($s3, 'your-bucket');
 
// 创建文件系统对象
$filesystem = new Filesystem($adapter);
 
// 上传文件
$filesystem->write('example.txt', 'contents');

// 上传图片
$filePath = '/Sites/img/test.jpeg';
$s3FilePath = 'public/test.jpeg';
$filesystem->write($s3FilePath, file_get_contents($filePath));

// 获取公开链接
$url = $s3->getObjectUrl('your-bucket', $s3FilePath);
echo $url;


扫描二维码推送至手机访问。

版权声明:本文由小刚刚技术博客发布,如需转载请注明出处。

本文链接:https://blog.bitefu.net/post/665.html

分享给朋友:

“宝塔搭建thinkphp 和 MinIO 私有云存储方案” 的相关文章

[教程] WTG备份新方法——FFU镜像格式

[教程] WTG备份新方法——FFU镜像格式

FFU(Full Flash Update) 格式是一种基于扇区的磁盘镜像文件格式,默认使用快速哈夫曼压缩(Xpress-Huffman)算法压缩,在捕获和部署时会生成哈希表进行校验,并可以使用DISM修改捕获的镜像。FFU格式很适合WTG…

【不忘初心】19041/19042/19043(20H1,20H2,21H1)告别繁琐 一键替换太阳谷图标 一键恢复原版图标 一键恢复文件夹预览

【不忘初心】19041/19042/19043(20H1,20H2,21H1)告别繁琐 一键替换太阳谷图标 一键恢复原版图标 一键恢复文件夹预览

一键替换太阳谷图标,一键恢复原版图标,注意是一键!!!  太阳谷图标确实很好看,很新颖 !论坛也有相关替换教程,有的需要改权限,有的需要PE下替换,有的还得重启,搞不好很容易翻车,有些小白同学只能望梅止渴,今天以上统统告…

记一次阿里云服务器cc攻击防护 windows 2012 iis8

记一次阿里云服务器cc攻击防护 windows 2012 iis8

上次连续一周左右阿里云服务器都在遭受cc攻击.导致访问量特别大,节假日接口调用特别缓慢或者根本访问不了的情况.本身服务器安装了 网站安全狗(IIS版) .并开始了防cc攻击.但是呢,平时还行,这次压力山大.于是一气之下用pytho…

Linux/centos inode 占用100%的解决办法

当你的 Linux 系统无法创建新文件时,有可能是你的磁盘满了,还有可能是你的磁盘的 inode 用光了,我们今天要说的就是后一种情况,要解决这个问题,只能是删除一些文件,但是一般情况下,其实是你的系统中的某个地方产生了大量的你并不需要的文…

TeraCloud:日本免费15G网盘,支持WebDav。适合搭配Zotero,AirExplorer实现自动同步备份

TeraCloud:日本免费15G网盘,支持WebDav。适合搭配Zotero,AirExplorer实现自动同步备份

TeraCloud是日本老牌网盘,速度挺快的。注册之后输入邀请码:“SX3BY”还可获得额外的5 GB.(如果你不输入邀请码,只能有10G)。经过我自己的尝试,我发现windows自带的资源管理器同步并不好,推荐Teracloud推荐的一些…

Windows下SVN自动更新

Windows下SVN自动更新

1、创建post-commit.bat文件,放到C:\Repositories\pms\hooks文件夹下(注意不要先创建txt文件然后改后缀,pms为代码目录名),内容如下:@echo off "C:\Tortois…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。