php 亚马逊AWS-S3对象存储上传文件
最近做国外项目的时候,需要把文件上传到AWS-S3对象存储空间里,下面整理一下上传方法,和碰到的问题
代码
/*** 亚马逊oss Aws上传* composer require aws/aws-sdk-php* @param $filePath* @param $ossPath* @return array* @author wzb* @data 2024/5/25*/
function ossAwsUploadFile($filePath = '', $ossPath = '')
{// 配置信息 composer require aws/aws-sdk-php$configOss = config('aws_oss');$accessKeyId = $configOss['accessKeyId'] ?? ''; // 你的AccessKeyId$accessKeySecret = $configOss['accessKeySecret'] ?? ''; // 你的AccessKeySecret$endpoint = $configOss['region'] ?? ''; // 你的Bucket所在地域的域名 ap-southeast-1$bucket = $configOss['bucket'] ?? ''; // 你的Bucket名字if (empty($accessKeyId) || empty($accessKeySecret) || empty($endpoint) || empty($bucket)) {return [];}$awsConfig = ['version' => 'latest',//版本'acl' => 'public-read',//权限//这个一定要加,是访问权限'bucket' => $bucket,//存储桶名称'region' => $endpoint,'key_id' => $accessKeyId,//Access key ID'access_key' => $accessKeySecret,//Secret access key];//实例化$s3 = new S3Client(['version' => $awsConfig['version'],//版本'region' => $awsConfig['region'],//区域'credentials' => new Credentials($awsConfig['key_id'],$awsConfig['access_key']),// 开启bug调试
// 'debug' => true]);if (!file_exists($filePath)) {return [];}try {$result = $s3->putObject(['Bucket' => $awsConfig['bucket'],'ACL' => $awsConfig['acl'],//这个一定要加,是访问权限'Key' => $ossPath, // //亚马逊静态资源服务器上的路径+图片名称
// 'Body' => fopen($filePath, 'r'),'SourceFile' => $filePath, // 原文件路径]);$result = $result->toArray();$imgUrl = $result['ObjectURL'] ?? '';return $result;} catch (Exception $exception) {echo $exception->getMessage();return [];}
}// 调用示例$ossInfo = ossAwsUploadFile("F:/wzb/img/5836923c44342.jpg", 'img/5836923c44342.jpg');
碰到的问题
一直报AWS HTTP error: cURL error 60: SSL certificate problem: unable to get local issuer certificate的问题:
下面详细报错信息:
PutObject" on “https://ss.amazonaws.com/img/5836923c44342.jpg”; AWS HTTP error: cURL error 60: SSL certificate problem: unable to get local issuer certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://ss.amazonaws.com/img/5836923c44342.jpg
解决办法
php.ini里面的 curl.cainfo 需要设置
-
下载cacert: https://curl.haxx.se/ca/cacert.pem
-
配置php.ini 并重启
curl.cainfo = "真实路径/cacert.pem"
相关文章:
php 亚马逊AWS-S3对象存储上传文件
最近做国外项目的时候,需要把文件上传到AWS-S3对象存储空间里,下面整理一下上传方法,和碰到的问题 代码 /*** 亚马逊oss Aws上传* composer require aws/aws-sdk-php* param $filePath* param $ossPath* return array* author wzb* data 202…...
electron-01 基础及NPM相关配置
electron基础 结构 ChromiumNode.jsNative apis 工作流程 启动APP主进程创建windowWin加载界面操作 主进程 package.json中main属性对应的文件一个应用对应一个主进程只有主进程可以进行GUI的API操作 渲染进程 windows中展示的界面通过渲染进程表现一个应用可以有多个渲…...
Foxit PDF Editor Pro福昕PDF编辑器Pro:重塑您的文档编辑体验
在信息爆炸的时代,PDF文件因其跨平台、格式稳定等特性,成为我们日常工作与学习中不可或缺的一部分。然而,面对这些文件时,许多人都会遇到一个共同的难题:如何高效、专业地编辑PDF内容?今天,我要…...
VUE 页面生命周期基本知识点
在 Vue.js 中,页面生命周期(更准确地说是组件生命周期)指的是组件从创建到销毁的一系列过程。了解这些生命周期钩子可以帮助我们更好地管理组件的状态和行为。以下是 Vue 组件的主要生命周期钩子: beforeCreate 在实例初始化之后&…...
windows查看mysql的版本(三种方法)
方法一:在win r 打开 cmd,在cmd命令状态下:mysql --help 回车即可 方法二:在mysql客户端窗口状态下:输入status并回车即可 在计算机开始菜单搜索以上应用打开即可进入mysql客户端窗口。 方法三:在mys…...
Redis批量删除指定前缀的key
在redis-cli中键入命令,批量删除前缀为business_login_tokens:的key: eval "return redis.call(del, unpack(redis.call(keys, ARGV[1])))" 0 business_login_tokens:*在Redis中,EVAL命令用于执行Lua脚本。这个特定的命令是用来批…...
机器学习实验------Adaboost算法
第1关:什么是集成学习 任务描述 本关任务:根据本节课所学知识完成本关所设置的选择题。 第2关: Boosting 任务描述 本关任务:根据本节课所学知识完成本关所设置的选择题。 第3关:Adaboost算法流程 任务描述 本关任务:用Python实现Adaboost,并通过鸢尾花数据集…...
点云处理中阶 Octree模块
一、什么是Octree 八叉树(Octree)是一种用于描述三维空间的树状数据结构。八叉树的每个节点表示一个正方体的体积元素,每个节点有八个子节点,这八个子节点所表示的体积元素加在一起就等于父节点的体积。一般中心点作为节点的分叉中…...
Nginx实现负载均衡与故障检查自动切换
创作灵感来源于个人项目的一个稳定性规划,单节点的项目稳定性方面可能有很大的缺漏,因此需要升级为多节点,保证服务故障后,依然有其他服务可用,不会给前端用户造成影响。 (前面讲选型,想直接看…...
2024年学浪视频怎么下载到手机相册
随着2024年的到来,学浪平台继续为广大学习者提供优质的在线教育资源。然而,如何将这些宝贵的视频内容下载到手机相册,方便随时离线观看呢?无论您是想在旅途中学习,还是希望在没有网络的情况下复习课程,本文…...
【北京市政府网_注册安全分析报告】
前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…...
工作中的冲突,职场人士应如何化解
在职场中,冲突和分歧是不可避免的现象。它们可能来源于工作分配不均、目标不一致、价值观差异或个性不合等。面对这些冲突和分歧,我们需要具备有效的冲突管理技巧来化解问题,以维持团队的和谐与工作效率。 分析冲突的原因至关重要。通常来说&…...
企业级大数据平台建设方案
企业级大数据平台建设方案 方案简介硬件软件分布式存储:Foreman作为集群管理工具Sparkcloudera 方案简介 该方案是多年前在Roadstar.ai任职时的建设方案,现将方案部分细节开源,结合本博客的其他文章,能够建立可靠的企业大数据平台…...
HTML语义化标签:为何它们如此重要?
HTML语义化标签:为何它们如此重要? 引言1. HTML语义化标签的基本概念2. HTML语义化标签的作用2.1 提升网页可读性2.2 增强可访问性2.3 优化搜索引擎排名2.4 提高性能 3. 代码示例结尾讨论 引言 在前端开发的世界里,HTML作为构建网页的基础语…...
详细介绍一下Votenet的工作原理及流程
Votenet是一种基于深度学习的三维目标检测和实例分割方法,其工作原理主要包括两个步骤:候选框生成和目标分类与分割。 1.候选框生成: 首先,Votenet通过将三维点云数据转化为连续的坐标网格,将三维目标检测问题转化为二…...
使用Autofit.js和React实现自适应布局
1. 什么是Autofit.js? Autofit.js是一个用于自适应网页布局的JavaScript库,它可以根据元素的尺寸和屏幕的大小,自动调整布局和排列方式,以适应不同的设备和分辨率。它提供了简单易用的API,可以帮助我们轻松实现各种自…...
Kafka之【存储消息】
Kafka之【存储消息】...
鸿蒙开发配置官方地图
一共需要配置 p12 p7b cer csr 四个文件 p12文件配置 注意创建文件名必须是.p12 到AGC创建项目 AppGallery Connect 添加自己的项目名称 我没有开启 暂时不需要 看个人需求 下载刚创建的cer证书 回到我的项目中 点击刚创建的项目 点击这里 四个文件齐全了 "metadata&qu…...
《天道》丁元英格律诗商业案例完整拆解(上)
目录 公司启动缘由 我们开公司也好、做任何其他事请也罢。 1997 年 3 月: 北京摆摊、租店面、仓库: 1997 年 4 月前: 向斯雷克音响店下订货单; 1997 年 6 月: 格林、伦敦、巴黎三个城市当托; 1998 …...
2024年山东省安全员C证证模拟考试题库及山东省安全员C证理论考试试题
题库来源:安全生产模拟考试一点通公众号小程序 2024年山东省安全员C证证模拟考试题库及山东省安全员C证理论考试试题是由安全生产模拟考试一点通提供,山东省安全员C证证模拟考试题库是根据山东省安全员C证最新版教材,山东省安全员C证大纲整理…...
VideoSrt:智能字幕生成工具重新定义视频创作效率
VideoSrt:智能字幕生成工具重新定义视频创作效率 【免费下载链接】video-srt-windows 这是一个可以识别视频语音自动生成字幕SRT文件的开源 Windows-GUI 软件工具。 项目地址: https://gitcode.com/gh_mirrors/vi/video-srt-windows VideoSrt是一款基于Golan…...
Hunyuan-MT-7B实战教程:Pixel Language Portal与RAG架构结合提升专业翻译
Hunyuan-MT-7B实战教程:Pixel Language Portal与RAG架构结合提升专业翻译 1. 产品概览与核心价值 Pixel Language Portal(像素语言跨维传送门)是一款基于腾讯Hunyuan-MT-7B大模型构建的创新翻译工具。与传统翻译软件不同,它将语…...
GitHub加速完全指南:从卡顿到飞一般体验的实战方案
GitHub加速完全指南:从卡顿到飞一般体验的实战方案 【免费下载链接】gh-proxy github release、archive以及项目文件的加速项目 项目地址: https://gitcode.com/gh_mirrors/gh/gh-proxy 问题诊断:你的GitHub访问为何如此缓慢? 网络延…...
【水声信号处理】突破物理极限:下视多波束声呐超分辨率技术原理与公式详解
【水声信号处理】突破物理极限:下视多波束声呐超分辨率技术原理与公式详解 文章目录【水声信号处理】突破物理极限:下视多波束声呐超分辨率技术原理与公式详解一、 为什么我们需要“超分辨率”?(痛点分析)二、 声呐回波…...
intv_ai_mk11GPU利用率提升:Llama中型模型批处理与并发请求调优方案
intv_ai_mk11 GPU利用率提升:Llama中型模型批处理与并发请求调优方案 1. 背景与挑战 intv_ai_mk11 是基于 Llama 架构的中等规模文本生成模型,在实际部署中我们发现单请求处理时GPU利用率往往不足30%。这种低效的资源使用导致两个主要问题:…...
终极指南:免费开源fSpy相机匹配工具,3分钟实现2D图像到3D场景的完美转换
终极指南:免费开源fSpy相机匹配工具,3分钟实现2D图像到3D场景的完美转换 【免费下载链接】fSpy A cross platform app for quick and easy still image camera matching 项目地址: https://gitcode.com/gh_mirrors/fs/fSpy 还在为将2D照片转换为精…...
从硅片到电路:图解CMOS反相器的制造工艺与工作原理
从硅片到电路:图解CMOS反相器的制造工艺与工作原理 在半导体工业中,CMOS反相器作为数字电路的基本构建模块,其制造工艺凝聚了现代微电子技术的精华。本文将带您深入半导体fab的微观世界,通过工艺截面图的逐步解析,揭示…...
惊艳展示:MedGemma医学影像分析系统,自然语言提问生成专业报告
惊艳展示:MedGemma医学影像分析系统,自然语言提问生成专业报告 1. 引言:当AI能“看懂”医学影像,并“说”出专业见解 想象一下,你手里有一张肺部X光片,但你不是放射科医生。你看着那些黑白影像和复杂的结…...
forkrun:革新数据处理,突破传统并行工具性能瓶颈
【导语:forkrun 作为一款自调优工具,可直接替代 GNU Parallel 和 xargs -P。它在现代 CPU 上能显著提升基于 Shell 的数据准备速度,尤其在 NUMA 架构上表现出色,为数据处理领域带来了新的变革。】数据处理速度的飞跃:5…...
如何从微信聊天记录中提取数据价值:WeChatMsg的完整解决方案
如何从微信聊天记录中提取数据价值:WeChatMsg的完整解决方案 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we…...
