iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >AWS S3在Laravel中如何使用
  • 295
分享到

AWS S3在Laravel中如何使用

2023-06-29 04:06:21 295人浏览 八月长安
摘要

今天小编给大家分享一下AWS S3在Laravel中如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。AWS S3 为我

今天小编给大家分享一下AWS S3在Laravel中如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

AWS S3 为我们提供了存储服务器文件的地方。 这样做有的好处是:

  • 备份 / 冗余 - S3 和类似产品具有内置备份和冗余

  • 扩展 - 在现代服务器(例如无服务器或容器化环境以及传统负载平衡环境)中,在服务器外保存文件成为了必要的

  • 磁盘使用率 - 在云中存储文件时不需要太多的磁盘空间

  • 功能 - S3(和其他云)具有一些很棒的功能,例如对文件的版本控制、删除旧文件(或以更便宜的方式存储它们)的生命周期规则、删除保护等等

现在使用 S3(即使在单服务器设置中)从长远来看可以减少麻烦。 这是你应该知道的!

配置

配置 S3 需要使用以下内容:

  • 在 Laravel 中 - 通常通过 .env,但也可能在 config/filesystem.PHP

  • 您的 AWS 账户

Laravel Config

如果您检查您的 config/filesystem.php 文件,您会发现已有 S3 选项。 它已经设置为 .env 文件中的环境变量!

除非您需要对此进行自定义,否则您可以不理会它,只需在 .env 文件中设置:

#(可选)将默认文件系统驱动设置为 S3FILESYSTEM_DRIVER=sqs# 添加基于 S3 的文件驱动所需的参数AWS_ACCESS_KEY_ID=xxxzzzAWS_SECRET_ACCESS_KEY=xxxyyyAWS_DEFAULT_REGioN=us-east-2AWS_BUCKET=my-awesome-bucketAWS_USE_PATH_STYLE_ENDPOINT=false

config/filesystem.php 文件包含以下选项 :

return [    'disks' => [        // 'local' 和 'public' 省略...        's3' => [            'driver' => 's3',            'key' => env('AWS_ACCESS_KEY_ID'),            'secret' => env('AWS_SECRET_ACCESS_KEY'),            'region' => env('AWS_DEFAULT_REGION'),            'bucket' => env('AWS_BUCKET'),            'url' => env('AWS_URL'),            'endpoint' => env('AWS_ENDPOINT'),            'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false),        ],    ],];

一些选项我们没有在 .env 文件中使用。例如,可以设置 AWS_URL,这对于使用具有 S3 兼容 api 的其他文件存储云是有用的,例如 CloudFlare 的 R2 或 Digital Ocean 的 Spaces。

AWS 配置

在 AWS 中,您需要做两件事:

  • 在 S3 服务中创建存储桶

  • 创建一个 IAM 用户以获取 Key 和 Secret Key,然后将策略附加到该用户以允许访问 S3 API。

与 AWS 中的任何东西一样,在 S3 中创建存储桶需要查看大量配置选项,并想知道您是否需要其中的任何一个。 对于大多数用例,您不需要!

前往 S3 控制台,创建一个存储桶名称(它必须是全局唯一的,而不仅仅是您的 AWS 账户唯一),选择您操作的区域,并保留所有默认值(包括标记为 “阻止公共访问设置” 的区域)。

其中一些选项是您可能想要使用的,但您可以稍后选择它们。

创建存储桶后,我们需要对其执行操作的权限。 假设我们创建了一个名为 my-awesome-bucket 的存储桶。

我们可以创建一个 IAM 用户,选择 “编程访问”,但不要附加任何策略或设置任何其他内容。 确保记录秘密访问密钥,因为他们只会显示一次。

我创建了一个视频,展示了在此处创建存储桶和设置 IAM 权限的过程: www.youtube.com/watch?v=FLIp6BLtwj...

访问 Access KeySecret Access Key 应放入您的 .env 文件中。

接下来,单击 IAM 用户并添加内联策略。 使用 JSON 编辑器对其进行编辑,然后添加以下内容(来自 Flysystem 文档):

{    "Version": "2012-10-17",    "Statement": [        {            "Sid": "Stmt1420044805001",            "Effect": "Allow",            "Action": [                "s3:ListBuckets",                "s3:GetObject",                "s3:GetObjectAcl",                "s3:PutObject",                "s3:PutObjectAcl",                "s3:ReplicateObject",                "s3:DeleteObject"            ],            "Resource": [                "arn:aws:s3:::my-awesome-bucket",                "arn:aws:s3:::my-awesome-bucket/*"            ]        }    ]}

这使我们能够在我们的新存储桶上执行所需的 S3 API 操作。

Laravel 用法

在 Laravel 中,你可以像这样使用文件存储:

# 如果您将 S3 设置为默认值:$contents = Storage::get('path/to/file.ext');Storage::put('path/to/file.ext', 'some-content');# 如果您没有将 S3 作为默认设置:$contents = Storage::disk('s3')->get('path/to/file.ext');Storage::disk('s3')->put('path/to/file.ext', 'some-content');

文件的路径(在 S3 中)被附加到存储桶名称中,因此名为 path/to/file.ext 的文件将存在于 s3://my-awesome-bucket/path/to/file.ext `。

从技术上讲,S3 中不存在目录。 在 S3 中,文件称为 “对象”,文件路径 + 名称是 “对象键”。 因此,在存储桶 my-awesome-bucket 中,我们刚刚创建了一个带有键 path/to/file.ext 的对象。

关于 S3 的有用信息

如果您的 AWS 设置在私有网络中有服务器,并使用 NAT 网关,请务必创建一个 S3 端点(网关类型)。这是在 VPC 服务的 Endpoints 部分中完成的。这允许向 / 来自 S3 的调用绕过 NAT 网关,从而避免额外的带宽费用。使用它不需要额外费用。

如果您担心文件被覆盖或删除,请考虑在您的 S3 存储桶中启用 版本控制

考虑在您的 S3 存储桶中启用 Intelligent Tiering ,以帮助节省您在旧文件后可能不会再次交互的文件的存储成本

请注意, 删除大存储桶(大量文件)可能会花钱!这是由于您必须进行大量 API 调用才能删除文件。

以上就是“AWS S3在Laravel中如何使用”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。

--结束END--

本文标题: AWS S3在Laravel中如何使用

本文链接: https://www.lsjlt.com/news/322521.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • AWS S3在Laravel中如何使用
    今天小编给大家分享一下AWS S3在Laravel中如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。AWS S3 为我...
    99+
    2023-06-29
  • aws S3使用总结
      最近公司要上海外项目,要用到亚马逊。可把我折腾的够呛。好多坑。不得不说亚马逊的东西挺好最起码服务器性能比阿里云强多了。但在人性化这一点做的不如阿里。反正是各有千秋  这里说一下我的案例:要把图片cdn上的图片传到S3。这里我试了很多方法...
    99+
    2023-01-31
    aws
  • 在适用于 Go 的 aws-sdk-go-v2 中添加 AWS s3 的 Presign URL 过期
    有志者,事竟成!如果你在学习Golang,那么本文《在适用于 Go 的 aws-sdk-go-v2 中添加 AWS s3 的 Presign URL 过期》,就很适合你!文章讲解的知识点主要包括,若...
    99+
    2024-04-05
  • 如何在 Laravel 中使用 Python?
    Laravel 是一个流行的 PHP 框架,它提供了一个简单而强大的平台,用于构建 Web 应用程序。Python 是一种高级编程语言,具有强大的数据处理和分析能力。在本文中,我们将介绍如何在 Laravel 中使用 Python,以及如何...
    99+
    2023-06-18
    面试 javascript laravel
  • 如何在Laravel中使用Tailwind CSS?
    Tailwind Tailwind是新的CSS实用程序框架,它很快成为我最喜欢的构建界面的方法。通常,尝试一个新的框架、包或语言的最困难的部分是建立起来。建造Tailwind的人做了一项令人难以置信的工作,记录了这个过程,而且非常容易做到。...
    99+
    2024-04-02
  • 如何在php中使用Laravel接口
    如何在php中使用Laravel接口?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。php是什么语言php,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypert...
    99+
    2023-06-14
  • 如何在Laravel中使用Python函数?
    Laravel是一个流行的PHP框架,它提供了许多功能和工具来帮助开发人员构建高质量的Web应用程序。Python是一种强大的编程语言,可以用于多种应用领域,包括数据分析、机器学习和自然语言处理等。在本文中,我们将探讨如何在Laravel中...
    99+
    2023-06-05
    git 函数 laravel
  • 如何在 PHP Laravel 中使用 Spring 函数?
    PHP Laravel 是一款广受欢迎的 Web 开发框架,它提供了许多强大的功能和工具,使得开发者能够更加高效地构建优秀的 Web 应用。其中,Spring 函数是一个非常实用的工具,它可以帮助我们在 Laravel 中实现一些常见的编程...
    99+
    2023-07-20
    laravel 函数 spring
  • 为什么在内存中下载比从 aws s3 在文件系统中下载慢?
    为什么在内存中下载比从AWS S3在文件系统中下载慢? 在下载文件时,我们通常会选择从AWS S3存储桶中下载到本地文件系统。然而,有时候我们会发现,使用内存中的下载方式比直接从S3...
    99+
    2024-02-09
    overflow
  • 如何使用Terraform在AWS上部署Jenkins
    这篇文章主要介绍“如何使用Terraform在AWS上部署Jenkins”,在日常操作中,相信很多人在如何使用Terraform在AWS上部署Jenkins问题上存在疑惑,小编查阅了各式资料,整理出简单好用...
    99+
    2024-04-02
  • 如何在PHP中使用Laravel容器加载?
    PHP是一种非常流行的服务器端脚本语言,它的应用领域非常广泛,可以用于开发Web应用程序、命令行工具、桌面应用程序等等。而Laravel是一款流行的PHP框架,它提供了丰富的功能和工具,可以帮助开发者更加高效地开发Web应用程序。其中,La...
    99+
    2023-09-16
    load laravel 容器
  • 在Laravel中如何使用数据库事务
    小编给大家分享一下在Laravel中如何使用数据库事务,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!什么是数据库事务在我们开始研究 Laravel 的数据库事务之前,让我们先看看它们是什么以及它们如何有益。对于什么是数据库...
    99+
    2023-06-22
  • 如何在 Laravel 中使用 Go 和 JavaScript 存储?
    Laravel 是一个非常流行的 PHP 框架,它提供了许多强大的功能和工具来帮助开发人员快速构建高质量的 Web 应用程序。但是,在某些情况下,您可能需要使用其他编程语言来进行开发,例如 Go 和 JavaScript。在本文中,我们将探...
    99+
    2023-08-20
    javascript 存储 laravel
  • Laravel中Middleware如何使用
    今天就跟大家聊聊有关Laravel中Middleware如何使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。PHP内置函数array_revers...
    99+
    2024-04-02
  • 如何在 Laravel 项目中使用 ASP 函数?
    Laravel 是一个流行的 PHP 框架,它被广泛应用于 Web 开发。在 Laravel 项目中,我们经常需要使用 ASP 函数来处理各种任务。ASP 函数是一种特殊的 PHP 函数,可以让我们更轻松地处理字符串、数组、日期等数据类型。...
    99+
    2023-09-02
    函数 linux laravel
  • 在AWS上如何使用EC2来搭建wordpress
    这篇文章主要介绍在AWS上如何使用EC2来搭建wordpress,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!0. 首先,你得有个AWS账号1. 生成密钥对(1) EC2 -> 网络与安全 -> 密钥对 ...
    99+
    2023-06-20
  • 如何在Laravel中使用NumPy数据类型?
    Laravel是一款流行的PHP框架,它提供了丰富的工具和组件来帮助开发者构建高效、可靠的Web应用程序。NumPy是一款Python科学计算库,它提供了许多高级的数据类型和函数,可以帮助处理大规模数据集。在本文中,我们将介绍如何在Lara...
    99+
    2023-07-19
    numy laravel 数据类型
  • 如何在 Laravel 中使用 Java 和 JavaScript 对象?
    Laravel 是一种流行的 PHP 框架,它提供了一种优雅的方式来构建 Web 应用程序。在开发过程中,您可能需要使用其他编程语言编写的对象,例如 Java 和 JavaScript。本文将介绍如何在 Laravel 中使用 Java 和...
    99+
    2023-09-22
    javascript 对象 laravel
  • 如何在 Laravel 中使用 PHP 同步数组?
    Laravel 是一个流行的 PHP 框架,它提供了许多方便的工具和功能,使开发人员能够更轻松地构建高质量的 Web 应用程序。在 Laravel 中,使用 PHP 同步数组是非常常见的操作,下面我们来详细了解一下如何在 Laravel 中...
    99+
    2023-09-18
    同步 laravel 数组
  • Laravel中Container如何使用
    Laravel中Container如何使用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。PHPUnit测试下绑定在聊解析过程前...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作