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

这篇具有很好参考价值的文章主要介绍了php对接AWS S3云存储,上传S3及访问权限问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

S3创建存储桶
php对接AWS S3云存储,上传S3及访问权限问题,s3,php
去安全凭证-》创建访问秘钥
php对接AWS S3云存储,上传S3及访问权限问题,s3,php
创建的时候会提示,主账号创建不安全,这个时候我们需要创建一个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;
}

如果是手动上传的文件需要开一下权限
php对接AWS S3云存储,上传S3及访问权限问题,s3,php文章来源地址https://www.toymoban.com/news/detail-689819.html

到了这里,关于php对接AWS S3云存储,上传S3及访问权限问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Laravel对接 AWS S3 完整流程

    重要的三个参数 1、创建存储桶 2、开启权限 3、编辑存储桶策略 4、使用策略生成器生成json策略 显示公开访问 控制台随便上传一个文件后查看属性复制 AWS_ENDPOINT 即对象URI的域名字段 5、创建IAM用户、添加用户组权限 创建用户成功后进入用户详情 创建访问密钥 至此三个参数

    2024年02月12日
    浏览(31)
  • 【Terraform学习】使用 Terraform 从 EC2 实例访问 S3 存储桶(Terraform-AWS最佳实战学习)

    前提条件 安装 Terraform : 地址 下载仓库代码模版 本实验代码 位于  task_ec2_s3connet  文件夹中 。 变量文件  variables.tf     在上面的代码中,您将 声明 , aws_access_key , aws_secret_key 和 区域变量 。 声明存储桶名称变量 。 terraform.tfvars   在上面的代码中,您将 定义变量的值

    2024年02月11日
    浏览(31)
  • AWS S3 协议对接 minio/oss 等

    依赖 读取配置 配置文件 文件操作 测试方法

    2024年02月13日
    浏览(35)
  • 自建AWS S3存储服务

    AWS S3(Amazon S3,全名为亚马逊简易存储服务),是亚马逊公司利用其亚马逊网络服务系统所提供的网络在线存储服务。我常用的很多SaaS服务中提供的文件存储功能,底层也都是AWS S3,比如: Cloudflare中的R2基于AWS S3构建的 Supabase页可以兼容AWS S3(自建时,默认直接文件存储到

    2024年02月20日
    浏览(30)
  • Java AWS S3 文件上传实现

    Amazon S3(Simple Storage Service)是亚马逊云计算平台提供的一种对象存储服务,可以用于存储和检索任意类型的数据。在Java开发中,我们可以通过AWS SDK for Java来实现与Amazon S3的集成。 官方文档 https://docs.aws.amazon.com/zh_cn/sdk-for-java/v1/developer-guide/examples-s3.html 1. 配置maven依赖 2. 配置

    2024年02月21日
    浏览(31)
  • 基于java的 aws s3文件上传

    aws s3 文件上传代码 首先,确保您已经在AWS上创建了一个S3存储桶,并拥有相应的访问密钥和密钥ID。这些凭据将用于在Java代码中进行身份验证。 接下来,需要在Java项目中添加AWS SDK的依赖。可以使用Maven或Gradle进行依赖管理。以下是一个Maven的示例依赖项: 示例代码: 在上述

    2024年01月17日
    浏览(32)
  • Python文件上传 S3(AWS) 简单实现

    建立aws账户,进入到S3界面  点击 \\\"Create bucket\\\" 一系列操作之后——这里给bucket命名为csfyp python需要先: 这两个包含一些连接python和s3 连接的api 然后直接上代码

    2024年02月03日
    浏览(37)
  • aws的s3匿名公开访问

    “Resource”: “arn:aws:s3:::bucketname/*”

    2024年02月11日
    浏览(31)
  • aws对象存储s3基于lambda实现图片裁剪

    存储桶名称:wmmzz 1.存储桶策略设置 2. 创建lambda函数 点击跳转到IAM控制台,创建自定义角色,选择服务类型lambda,创建策略 输入策略下一步取名resize-policy,回到创建角色页面,搜索刚才创建的策略选中,再搜索AmazonS3FullAccess选中 点击下一步,输入角色名称resize-role,点击“创建角色

    2024年02月11日
    浏览(34)
  • 通过AWS Endpoints从内网访问S3

    AWS S3作为非结构化数据的存储,经常会有内网中的app调用的需求。S3默认是走公网访问的,如果内网app通过公网地址访问S3并获取数据会消耗公网带宽费用。如下图所示: AWS 提供了一种叫做endpoints的资源,这种资源可以后挂S3服务,使得内网服务可以不出公网访问S3. VPC endpo

    2024年02月03日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包