当前位置: 首页 > news >正文

php对接AWS S3云存储,上传S3及访问权限问题

首先先下载sdk包
https://docs.aws.amazon.com/zh_cn/sdk-for-php/v3/developer-guide/getting-started_installation.html

S3创建存储桶
在这里插入图片描述
去安全凭证-》创建访问秘钥
在这里插入图片描述
创建的时候会提示,主账号创建不安全,这个时候我们需要创建一个IAM账号来创建秘钥
创建的步骤访问这个链接 https://www.codenong.com/a513c91eac7186db59fe/

创建之后来到代码这一块

//$keyName是存储S3的路径
//$filepath是本地图片的路径
awsUploadFile($keyName, $filepath);
//删除本地文件
unlink('.' . $resultData['url']);function awsUploadFile($keyName, $filepath)
{//引入文件require_once '../extend/aws/aws-autoloader.php';//    set_time_limit(0);$awsConfig = ['version' => 'latest',//版本'acl' => 'public-read',//权限//这个一定要加,是访问权限'bucket' => config('site.S3bucket'),//存储桶名称'region' => 'ap-southeast-1',//区域 和 亚马逊资源服务器创建的桶块区域一致'key_id' => config('site.S3key_id'),//Access key ID'access_key' => config('site.S3access_key'),//Secret access key];//实例化$credentials = new Aws\Credentials\Credentials($awsConfig['key_id'],$awsConfig['access_key']);$s3 = new Aws\S3\S3Client(['version' => $awsConfig['version'],//版本'region' => $awsConfig['region'],//区域'credentials' => $credentials,]);if(!file_exists($filepath)){dump('file does not exist');exit;}
//    $http = new GuzzleHttp\Client();
//    $res = $http->request('GET', $filepath);try {$result = $s3->putObject(['Bucket' => $awsConfig['bucket'],'Key' => $keyName,'Body' => fopen($filepath, 'r'),'ACL' => 'public-read',//这个一定要加,是访问权限
//            'Body' => $res->getBody(),
//            'ContentLength' => $res->getHeader('content-length')[0],]);} catch (Exception $exception) {echo "Failed to upload $filepath with error: " . $exception->getMessage();exit("Please fix error with file upload before continuing.");}return $result;
}

如果是手动上传的文件需要开一下权限
在这里插入图片描述

http://www.lryc.cn/news/156627.html

相关文章:

  • java 实现单例模式
  • minio文件服务器开启https
  • 每日刷题(回溯法经典问题之子集)
  • PostgreSQL在进行除法时要注意
  • 开开心心带你学习MySQL数据库之第五篇
  • Geotools对geojson的解析
  • 【博客701】shell实现保留网络现场:ping失败时执行mtr
  • 放弃手写代码吧!用低代码你能生成各种源码
  • 什么程度才算精通 Linux?
  • jmeter中的__setProperty用法
  • vue基础知识六:v-show和v-if有什么区别?使用场景分别是什么?
  • SpringBoot几个常用的注解
  • 腾讯JAVA后端秋招面试总结
  • 随着iPhone 15降临,是时候扔掉所有的Lightning充电器了
  • huggingface 使用入门笔记
  • ASP.NET Core 中的 Razor Pages
  • C语言入门 Day_14 for循环
  • 深入解析 Socks5 代理与网络安全
  • Vue + Element UI 前端篇(十二):用户管理模块
  • C# 设计保存文件
  • Leetcode 1486.数组异或操作
  • 【Java】Java核心API概述
  • 微信小程序检查版本更新
  • Linux查看是虚拟机还是物理机
  • 【数据结构】二叉搜索树——二叉搜索树的概念和介绍、二叉搜索树的简单实现、二叉搜索树的增删查改
  • 通过linux定时任务删除es日志索引
  • 【跟小嘉学 Rust 编程】二十二、常用 API
  • 【ES6】Class中this指向
  • Python 编程竟然如此幽默!揭秘程序员们的搞笑日常,快来看看吧!
  • Linux c++开发-03-使用CMake组织工程