検索
ホームページPHPフレームワークLaravelLaravel で AWS S3 の使い方を完全にマスターする

この記事では、Laravel での AWS S3 の使用に関する関連知識を提供します。AWS S3 は、サーバー ファイルを保存する場所を提供します。クラウドにファイルを保存すると、多くのスペースを消費しません。ディスク スペース、Iそれがみんなに役立つことを願っています。

Laravel で AWS S3 の使い方を完全にマスターする

#AWS S3 は、サーバー ファイルを保存する場所を提供します。これを行う利点は次のとおりです。

  • バックアップ/冗長性 - S3 および類似の製品にはバックアップと冗長性が組み込まれています

  • 拡張機能- 最新のサーバー(サーバーレスまたはコンテナ化された環境、従来の負荷分散環境など)では、ファイルをサーバーの外に保存することが必要になります

  • ディスク使用量 - クラウドにファイルを保存するときに多くのディスク容量を必要としません

  • 機能- S3 (および他のクラウド) にはいくつかの優れた機能がありますファイルのバージョン管理、古いファイルを削除する (または安価に保存する) ためのライフサイクル ルール、削除保護などの機能

S3 を使用すると (単一サーバー設定でも) 頭痛の種を軽減できます。長い目で見れば。知っておくべきことは次のとおりです。

Configuration

S3 の設定には次のものが必要です:

  • Laravel の場合 - 通常は .env 経由ですが、場合によっては config/filesystem.php でも使用できます。

  • ##あなたの AWS アカウント

Laravel Config

config/ filesystem.php ファイルを確認する場合、すでに S3 オプションがあることがわかります。これは、.env ファイル内で環境変数としてすでに設定されています。

これをカスタマイズする必要がない限り、そのままにして .env ファイルに設定するだけでかまいません:

#(可选)将默认文件系统驱动设置为 S3
FILESYSTEM_DRIVER=sqs
# 添加基于 S3 的文件驱动所需的参数
AWS_ACCESS_KEY_ID=xxxzzz
AWS_SECRET_ACCESS_KEY=xxxyyy
AWS_DEFAULT_REGION=us-east-2
AWS_BUCKET=my-awesome-bucket
AWS_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 を設定できます。これは、CloudFlare の R2 や Digital Ocean の Spaces など、S3 互換 API を備えた他のファイル ストレージ クラウドを使用する場合に便利です。

AWS 構成

AWS では、次の 2 つのことを行う必要があります:

  • S3 サービスにバケットを作成する

  • IAM ユーザーを作成してキーと秘密キーを取得し、S3 API へのアクセスを許可するポリシーをユーザーにアタッチします。

AWS の他のものと同様、S3 でバケットを作成するには、多くの設定オプションを検討し、それらが必要かどうかを検討する必要があります。ほとんどの使用例では、その必要はありません。

S3 コンソールに移動し、バケット名を作成し (AWS アカウントに固有であるだけでなく、グローバルに一意である必要があります)、運用しているリージョンを選択し、すべてのデフォルトのままにします (「パブリックをブロック」のマークを含む)アクセス設定」エリア)。

これらのオプションの一部は使用する可能性がありますが、後で選択できます。

バケットを作成した後、バケットに対して操作を実行するための権限が必要です。 my-awesome-bucket というバケットを作成するとします。

IAM ユーザーを作成し、「プログラムによるアクセス」を選択できますが、ポリシーをアタッチしたり、その他の設定をしたりすることはできません。シークレット アクセス キーは 1 回だけ表示されるため、必ず記録してください。

バケットの作成と IAM 権限の設定のプロセスを示すビデオをここに作成しました: www.youtube.com/watch?v=FLIp6BLtwj...

Visit## The #Access Key

Secret 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 内の) ファイルへのパスがバケット名に追加されるため、A path/to/file.ext という名前のファイルは s3://my-awesome-bucket/path/to/file.ext` に存在します。

技術的には、S3 にはディレクトリは存在しません。 S3 では、ファイルは「オブジェクト」と呼ばれ、ファイルのパス名は「オブジェクトキー」と呼ばれます。したがって、バケット my-awesome-bucket に、キー path/to/file.ext を持つオブジェクトを作成しました。

Storage の Laravel ドキュメントを必ずチェックして、ファイル ストリームや一時 URL など、Storage をさらに便利に使用する方法を見つけてください。

価格

S3 はかなり安いです。ほとんどの人は月に数セントから数ドルを費やします。これは、ファイルを使い終わったときに S3 からファイルを削除する場合、または一定期間後にファイルを削除するようにライフサイクル ルールを設定する場合に特に当てはまります。

価格は (主に) 3 つの要素によって決まります。価格は地域や用途によって異なります。これは、S3 に大量のデータを保存する Chipper CI (私の Laravel アプリケーションの CI) の特定の月に基づく実際のアプリケーションの使用例です:

    #Storage
  • : 1 GB あたり $0.023、~992GB ~= $22.82

  • API 呼び出し数 : ~700 万リクエスト ~ = 12 ドル

  • 帯域幅使用量: これは非常に不正確です。データ転送には約 23 ドルの費用がかかりますが、これには EC2 ベースの帯域幅料金は含まれません。

S3 に関する役立つ情報

AWS セットアップでプライベート ネットワーク内にサーバーがあり、NAT ゲートウェイを使用している場合は、必ず S3 エンドポイント (ゲートウェイ タイプ) を作成してください。これは、VPC サービスのエンドポイント セクションで行われます。これにより、S3 との間の通話が NAT ゲートウェイをバイパスできるようになり、追加の帯域幅料金が回避されます。使用するのに追加料金はかかりません。

ファイルの上書きまたは削除が心配な場合は、S3 バケットでバージョニングを有効にすることを検討してください。

S3 バケットでインテリジェント階層化を有効にして、ファイルの保存コストを節約することを検討してください。古いものになると再び操作されなくなります。

大きなバケット (大量のファイル) を削除すると、費用がかかる可能性があることに注意してください。これは、ファイルを削除するために多数の API 呼び出しを行う必要があるためです。

関連する推奨事項: Laravel ビデオ チュートリアル

以上がLaravel で AWS S3 の使い方を完全にマスターするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はlearnkuで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
JavaScriptフレームワーク(React、Vue、Angular)とLaravelバックエンドの統合JavaScriptフレームワーク(React、Vue、Angular)とLaravelバックエンドの統合May 03, 2025 am 12:20 AM

反応、vue、andangularcanbe veintedated withlaravelbyfollowingspecificsetupSteps.1)forReact:instruectusinglaravelui、setUpComponentsInapp.js.2)forvue:uselaravel'sbuilt-invuesuptort、futureinapp.3)

タスク管理ツール:リモートプロジェクトの進捗状況の優先順位付けと追跡タスク管理ツール:リモートプロジェクトの進捗状況の優先順位付けと追跡May 02, 2025 am 12:25 AM

Taskmanagementtoolsareessentialforeffectiveremoteprojectmanagementbyprioritizingtasksandtrackingprogress.1)UsetoolslikeTrelloandAsanatosetprioritieswithlabelsortags.2)EmploytoolslikeJiraandMonday.comforvisualtrackingwithGanttchartsandprogressbars.3)K

最新のLaravelバージョンはパフォーマンスをどのように改善しますか?最新のLaravelバージョンはパフォーマンスをどのように改善しますか?May 02, 2025 am 12:24 AM

laravel10EnhancesperformAnceTheveralkeyfeatures.1)ItintroduceSquerybuilderCachinucedatedatabaseload.2)itoptimizeseLoquentModelloadingwithlazingproxies.3)itimprovesRoutingWithineSystem.4)itemproveStingwithingingSystem.4)

フルスタックのLaravelアプリケーションの展開戦略フルスタックのLaravelアプリケーションの展開戦略May 02, 2025 am 12:22 AM

最高のフルスタックのLaravelアプリケーション展開戦略には、1。Zeroダウンタイム展開、2。ブルーグリーン展開、3。連続展開、4。Canaryリリースが含まれます。 1.ゼロダウンタイムデプロイメントは、EnvoyまたはDeployerを使用して展開プロセスを自動化して、更新時にアプリケーションを利用できるようにします。 2。ブルーとグリーンの展開により、2つの環境を維持し、迅速なロールバックを可能にすることにより、ダウンタイムの展開が可能になります。 3.継続的な展開GithubactionsまたはGitlabci/CDを使用して、展開プロセス全体を自動化します。 4。nginx構成を通じてカナリーがリリースされ、パフォーマンスの最適化と迅速なロールバックを確保するために、新しいバージョンをユーザーに徐々に宣伝します。

フルスタックのLaravelアプリケーションのスケーリング:ベストプラクティスとテクニックフルスタックのLaravelアプリケーションのスケーリング:ベストプラクティスとテクニックMay 02, 2025 am 12:22 AM

ToscalealAravelApplicationively、Focusondatabasesharding、Caching、Loadbalancing、andMicroservices.1)databaseShardingTodistributedataacrossMultipledatabase.2)uselaraval'scachingsmultedistestemedisemememememememedtededatedatab

静かな闘争:分散型チームのコミュニケーションの障壁を克服します静かな闘争:分散型チームのコミュニケーションの障壁を克服しますMay 02, 2025 am 12:20 AM

ToovercomcomcommunicationbarriersindistributedTeams、使用:1)VideoCallsForface-to-faceInteraction、2)setClearResponsetimeExpectations、3)ChooseaprateCommunicationSoools、4)CreateAmCommunicationGuide、and5)

フルスタックプロジェクトでのフロントエンドテンプレートにLaravel Bladeを使用しますフルスタックプロジェクトでのフロントエンドテンプレートにLaravel Bladeを使用しますMay 01, 2025 am 12:24 AM

laravelbladeEnhancesFrontendTemplatinginfull stackprojectsbyofferingcleansyntaxandpowerfulfeatures.1)itallows foreasyvariabledisplayandcontrolstructures.2)bladeSupportscreating andReusing components、

Laravelを使用したフルスタックアプリケーションの構築:実用的なチュートリアルLaravelを使用したフルスタックアプリケーションの構築:実用的なチュートリアルMay 01, 2025 am 12:23 AM

laravelisidealforfull-stackapplicationsduetoitseLegantyntax、包括的なセコスシステム、およびパワーフルフィーチュア

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。