thinkphp6 亚马逊S3存储

在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;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/39973.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jenkins 发布服务到linux服务器

1.环境准备 1.1 需要一台已经部署了jenkins的服务器,上面已经集成好了,jdk、maven、nodejs、git等基础的服务。 1.2 需要安装插件 pusblish over ssh 1.3 准备一台额外的linux服务器,安装好jdk 2.流程描述 2.1 配置jenkins,包括p…

java函数式接口的使用-自定义函数接口@FunctionalInterface消除if else和内置4大函数式接口

1.自定义函数接口FunctionalInterface消除if else FunctionalInterface public interface MyFunction<T, R> {R apply(T... t); }import com.google.common.collect.Maps;import java.util.Map;/*** 自定义函数消除if else*/ public class MyFunctionTest {//(自定义)一…

ubuntu系统下如何安装python

在Ubuntu系统下安装Python&#xff0c;有多种方法可供选择。以下是两种常见的方法&#xff1a; 一、使用apt包管理器安装 安装步骤如下&#xff1a; 首先更新软件包列表 sudo apt update安装Python 3&#xff1a; 输入以下命令以安装Python 3&#xff08;Ubuntu的默认Pyth…

如何将 Apifox 的自动化测试与 Jenkins 集成?

CI/CD &#xff08;持续集成/持续交付&#xff09; 在 API 测试 中的主要目的是为了自动化 API 的验证流程&#xff0c;确保 API 发布到生产环境前的可用性。通过持续集成&#xff0c;我们可以在 API 定义变更时自动执行功能测试&#xff0c;以及时发现潜在问题。 Apifox 支持…

二叉树的最近公共祖先-二叉树

236. 二叉树的最近公共祖先 - 力扣&#xff08;LeetCode&#xff09; ​ 递归 lson、rson左右子树&#xff1b; 深度优先遍历&#xff0c;遍历到p或者q就返回ture&#xff1b; class Solution { public:TreeNode* ans;bool dfs(TreeNode* root, TreeNode* p, TreeNode* q){i…

墨烯的C语言技术栈-C语言基础-004

三.变量,常量 生活中有些值是不变的 有些值是可变的 // 变量和常量功能 // 变量分为 局部变量 和 全局变量 int b 20; 全局变量 int main() { short age 20; // 年龄 局部变量 int high 180; // 身高 局部变量 float weight 88.5 // 体重 局部变量 return 0;…

GoLand 2024 for Mac GO语言集成开发工具环境

Mac分享吧 文章目录 效果一、下载软件二、开始安装1、双击运行软件&#xff08;适合自己的M芯片版或Intel芯片版&#xff09;&#xff0c;将其从左侧拖入右侧文件夹中&#xff0c;等待安装完毕2、应用程序显示软件图标&#xff0c;表示安装成功3、打开访达&#xff0c;点击【文…

CAN学习笔记

学习链接&#xff1a;CAN学习笔记&#xff08;1&#xff09;_can sjw-CSDN博客 内容全部取自链接&#xff0c;非原创。用于自己学习和记录&#xff0c;如有错误请指正。如果侵权了&#xff0c;请联系我删掉。 CAN主要有两种物理层&#xff0c;1.闭环的ISO11898 2.开环的ISO1…

Hadoop3:NameNode和DataNode多目录配置(扩充磁盘的技术支持)

一、NameNode多目录 1、说明 NameNode多目录&#xff0c;需要在刚搭建Hadoop集群的时候&#xff0c;就配置好 因为&#xff0c;配置这个&#xff0c;需要格式化NameNode 所以&#xff0c;如果一开始没配置NameNode多目录&#xff0c;后面&#xff0c;就不要配置了。 2、配置…

数据库组成及原理

属性&#xff1a; 把数据库中的一个表类比成一个公司&#xff0c;那么公司里的每个人都是一个“属性”&#xff08;表中的一个字段视为一个属性&#xff09;&#xff0c;不管老板还是员工&#xff0c;只要是公司里的人&#xff0c;就都是一个属性。 主键&#xff1a; 老板就是“…

网络安全 文件上传漏洞-20 第二十关 Pass-20

点击进入第二十关&#xff0c;并选择显示代码&#xff1a; $is_upload false; $msg null; if(!empty($_FILES[upload_file])){//检查MIME$allow_type array(image/jpeg,image/png,image/gif);if(!in_array($_FILES[upload_file][type],$allow_type)){$msg "禁止上传该…

vector模拟实现【C++】

文章目录 全部的实现代码放在了文章末尾准备工作包含头文件定义命名空间和类类的成员变量 迭代器迭代器获取函数 构造函数默认构造使用n个值构造迭代器区间构造解决迭代器区间构造和用n个值构造的冲突拷贝构造 析构函数swap【交换函数】赋值运算符重载emptysize和capacityopera…

N5 使用Gensim库训练Word2Vec模型

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊# 前言 前言 这周学习训练一个Word2Vec模型&#xff0c;并进行一些基本的词向量操作。 Word2Vec 模型 Word2Vec 是一种基于神经网络的词向量表示方法&#x…

mysql8.0为什么要移除查询缓存,对应又做了哪些优化,进来看看,一定获益匪浅

前言 MySQL 查询缓存是一个用于缓存查询结果的机制&#xff0c;通过减少对数据库的重复查询来提高性能。在 MySQL 5.7 及其之前的版本中&#xff0c;查询缓存的实现主要依赖于哈希表和内存管理。当查询字符串完全匹配且表未发生变动时&#xff0c;查询缓存可以显著提高查询性能…

HMI 的 UI 风格成就经典

HMI 的 UI 风格成就经典

力扣61. 旋转链表(java)

思路&#xff1a;用快慢指针找到最后链表k个需要移动的节点&#xff0c;然后中间断开节点&#xff0c;原尾节点连接原头节点&#xff0c;返回新的节点即可&#xff1b; 但因为k可能比节点数大&#xff0c;所以需要先统计节点个数&#xff0c;再取模&#xff0c;看看k到底需要移…

MySQL之高可用性(二)

高可用性 避免单点失效 找到并消除系统中的可能失效的单点&#xff0c;并结合切换到备用组件的机制&#xff0c;这是一种通过减少恢复时间(MTTR)来改善可用性的方法。如果你够聪明&#xff0c;有时候甚至能将实际的恢复时间降低至0&#xff0c;但总的来说这很困难。(即使一些…

16. Java的 Unsafe 类方法介绍

1. 前言 本节内容主要是对 Unsafe 类方法进行介绍&#xff0c;JDK jar 包中的 Unsafe 类提供了硬件级别的原子性操作&#xff0c;Unsafe 类中的方法都是 native 方法&#xff0c;它们使用 JNI 的方式访问本地 C&#xff0b;&#xff0b;实现库。 本节我们来了解一下 Unsafe 提…

目标检测技术概述与最新进展

目标检测技术概述与最新进展 一、引言 目标检测是计算机视觉中的一个重要研究方向&#xff0c;旨在在图像或视频中识别并定位目标对象。它在自动驾驶、智能安防、医疗影像分析等领域有着广泛的应用。本文将介绍目标检测的经典方法和最新进展&#xff0c;并给出相关论文的链接…

Python数据可视化书籍推荐:利用Python进行数据分析

《利用Python进行数据分析》 这本书几乎是数据分析入门必读书了 主要介绍了python 3个库numpy&#xff08;数组&#xff09;&#xff0c;pandas&#xff08;数据分析&#xff09;和matplotlib&#xff08;绘图&#xff09;的学习 阅读本书可以获得一份关于在Python下操作、处…