当前位置:首页 > 技术分享 > 正文内容

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

admin7个月前 (04-18)技术分享564

当需要搭建私有云存储时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

分享给朋友:

相关文章

安卓模拟器连接端口 及常用命令

下面是我总结和测试通过的:有的是搜集来的模拟器名称                     &nbs...

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

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

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

微软 Win11 安卓子系统已支持运行支付宝等 APK 应用(附手动侧载安装教程攻略)

微软 Win11 安卓子系统已支持运行支付宝等 APK 应用(附手动侧载安装教程攻略)

微软博客宣称,Windows 11 上 安卓子系统运行 Android  应用程序的第一个预览版现已提供给美国 Beta 频道的 Windows 内部人员。Windows 11 安卓子系统支...

Windows 11 LTSC 数字激活方法/HEU KMS Activator 数字激活/LTSC公key激活

Windows 11 LTSC 数字激活方法/HEU KMS Activator 数字激活/LTSC公key激活

Windows 11 Pro 转换成 Windows 11 Enterprise LTSC(Windows 11 企业版 LTSC) 并获得数字激 活方法1. 在Win11 Pro 中 导入LTSC 数字激 活证书:将 Windows LT...

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...

发表评论

访客

看不清,换一张

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