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

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

admin8个月前 (04-18)技术分享675

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

分享给朋友:

相关文章

linux centos svn搭建及网站同步更新

以前上线的项目都是用ftp来更新的.后来技术人员多了,ftp的弊端就出来了.所以在这里给大家介绍一下我们现在正在使用的svn同步修改更新的方案.原理很简单主要是用到了svn的hooks功能.即本地提交到服务器的svn服务器.然后svn服务器...

360浏览器如何禁止切换到兼容模式[本地终极办法]

360浏览器如何禁止切换到兼容模式[本地终极办法]

浏览器内核控制标签meta说明背景介绍由于众所周知的原因,国内的主流浏览器都是双核浏览器:基于Webkit的内核用于常用网站的高速浏览,基于IE的内核主要用于部分网银、政府、办公系统等网站的正常使用。以360浏览器为例,我们优先通过Webk...

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

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

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

超高性比的斐讯盒子T1,刷第三方YYF固件机教程超级详细版

超高性比的斐讯盒子T1,刷第三方YYF固件机教程超级详细版

家里面买了斐讯盒子T1,必不可少的就是刷机,刷机一直爽,一直刷机一直爽,这样的快乐一般人体会不到。原来斐讯盒子N1,T1,还有斐讯K2P路由器也变成了性价比超高的东东,而且众多大神也带来了超多可玩性非常高的固件和破解。楼主今天扒到了相关超高...

centos 配置Let's Encrypt 泛域名https证书

centos 配置Let's Encrypt 泛域名https证书

前言2018年1月份Letsencrypt可以申请泛域名证书,这让我们部署多域名、多站点https省了很多功夫,终于可以不用维护多个域名的https证书。笔者以acme.sh为例,手把手教你配置https证书~本教程适用于centos 6....

Nginx服务崩溃自动重启脚本(监控进程服务并自动重启进程服务)脚本

有一台服务器运行着Ngin最近突然有一次崩溃,导致使用方当天无法访问网页端,然后我不得不登录服务器,检查各项服务,发现nginx崩溃了,于是重启Nginx,问题解决。后来为了防止Nginx再发生这种情况给运维带来的运维成本,于是写了一个脚本...

发表评论

访客

看不清,换一张

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