PHP と Amazon S3 を使用してファイルを保存および管理する方法

WBOY
リリース: 2023-06-19 14:36:01
オリジナル
1816 人が閲覧しました

クラウド コンピューティング テクノロジーの急速な発展に伴い、ますます多くの企業や個人がデータをクラウドに保存し始めています。 Amazon S3 (Amazon Simple Storage Service) は、業界でよく知られたクラウド ストレージ サービスの 1 つで、柔軟で信頼性が高く、安全で使いやすいストレージ ソリューションを提供します。この記事では、PHP と Amazon S3 を使用してファイルを保存および管理する方法を紹介します。

ステップ 1: Amazon S3 アカウントとバケット (バケット) を作成する

Amazon S3 サービスを使用するには、まずアマゾン ウェブ サービス (AWS) アカウントを作成し、次にバケット (バケット) 、ファイルの保存に使用されます。バケットを作成するときは、いくつかの重要な設定に注意してください。

  1. バケットの名前を設定します。Amazon S3 バケットの名前はグローバルに一意であるため、一意である必要があります。
  2. バケット領域を設定し、データアクセスの地理的位置に応じて異なる領域を選択すると、アクセス速度と信頼性が向上します。
  3. バケットのアクセス許可を設定します。データのセキュリティを確保するために、パブリックの読み取りおよび書き込みアクセス許可またはプライベートの読み取りおよび書き込みアクセス許可を選択できます。

ステップ 2: AWS PHP SDK をインストールする

AWS PHP SDK は、PHP 言語用のアマゾン ウェブ サービス ソフトウェア開発キットであり、開発者が AWS サービスを利用できるようにするためのパッケージ化された API が多数提供されています。簡単に使用できます。開発を開始する前に、AWS PHP SDK をインストールして設定する必要があります。具体的な方法についてはAWSの公式ドキュメントを参照してください。

ステップ 3: Amazon S3 にファイルをアップロードする

AWS PHP SDK の S3 モジュールを使用すると、ファイルを Amazon S3 にアップロードできます。以下は、ファイルをアップロードするための簡単な PHP コードの例です。

<?php
require 'vendor/autoload.php'; //引入AWS PHP SDK

use AwsS3S3Client;
use AwsS3ExceptionS3Exception;

//设置访问参数
$bucket = 'my-bucket';
$keyname = 'example-object.txt';
$body = 'Hello World!';

try {
    //创建S3客户端
    $s3 = new S3Client([
        'version' => 'latest',
        'region' => 'us-west-2',
        'credentials' => [
            'key'    => 'ACCESS_KEY',
            'secret' => 'SECRET_KEY',
        ],
    ]);

    //上传文件到桶
    $result = $s3->putObject([
        'Bucket' => $bucket,
        'Key' => $keyname,
        'Body' => $body,
        'ACL' => 'public-read',
    ]);

    //打印上传结果
    echo "Object URL: " . $result['ObjectURL'] . PHP_EOL;
} catch (S3Exception $e) {
    //出错时打印错误消息
    echo $e->getMessage() . PHP_EOL;
}
ログイン後にコピー

上記のコードでは、バケット名、ファイル名、コンテンツなどのパラメーターが最初に設定され、次に S3 クライアントが作成され、最後に putObject メソッドが作成されます。ファイルをバレルにアップロードするために使用されます。このうち ACL パラメータはファイルのアクセス権限を設定するもので、ここでは誰でもアクセスできるパブリック読み取り権限を設定しています。よりきめ細かい権限制御が必要な場合は、特定のニーズに応じて ACL パラメータを調整できます。

ステップ 4: Amazon S3 からファイルをダウンロードする

また、AWS PHP SDK の S3 モジュールを使用して、Amazon S3 からファイルをダウンロードします。以下は、ファイルをダウンロードするための簡単な PHP コードの例です。

<?php
require 'vendor/autoload.php'; //引入AWS PHP SDK

use AwsS3S3Client;
use AwsS3ExceptionS3Exception;

//设置访问参数
$bucket = 'my-bucket';
$keyname = 'example-object.txt';

try {
    //创建S3客户端
    $s3 = new S3Client([
        'version' => 'latest',
        'region' => 'us-west-2',
        'credentials' => [
            'key'    => 'ACCESS_KEY',
            'secret' => 'SECRET_KEY',
        ],
    ]);

    //从桶中下载文件
    $result = $s3->getObject([
        'Bucket' => $bucket,
        'Key' => $keyname,
    ]);

    //打印文件内容
    echo $result['Body'];
} catch (S3Exception $e) {
    //出错时打印错误消息
    echo $e->getMessage() . PHP_EOL;
}
ログイン後にコピー

上記のコードでは、バケット名やファイル名などのパラメーターが設定され、ダウンロードする getObject メソッドを使用して S3 クライアントが作成されます。バケットからファイルを取得し、ファイルの内容を印刷します。ファイルをローカル ファイル システムにダウンロードする場合は、SDK が提供する downloadObject メソッドを使用できます。

ステップ 5: ファイルを管理する

Amazon S3 は、バケット内のファイルの一覧表示、ファイルの削除、ファイルのコピーなど、ファイルを管理するためのさまざまな機能を提供します。同様に、AWS PHP SDK の S3 モジュールを使用してこれらの関数を実装することもできます。以下は、バケット内のすべてのファイルをリストする PHP コードの例です。

<?php
require 'vendor/autoload.php'; //引入AWS PHP SDK

use AwsS3S3Client;
use AwsS3ExceptionS3Exception;

//设置访问参数
$bucket = 'my-bucket';

try {
    //创建S3客户端
    $s3 = new S3Client([
        'version' => 'latest',
        'region' => 'us-west-2',
        'credentials' => [
            'key'    => 'ACCESS_KEY',
            'secret' => 'SECRET_KEY',
        ],
    ]);

    //列出桶中所有文件
    $results = $s3->listObjects([
        'Bucket' => $bucket,
    ]);

    //打印每个文件的信息
    foreach ($results['Contents'] as $object) {
        echo $object['Key'] . PHP_EOL;
        echo $object['LastModified'] . PHP_EOL;
        echo $object['Size'] . PHP_EOL;
    }
} catch (S3Exception $e) {
    //出错时打印错误消息
    echo $e->getMessage() . PHP_EOL;
}
ログイン後にコピー

上記のコードでは、バケット名などのパラメーターが設定され、listObjects メソッドを使用して S3 クライアントが作成されます。バケット内のすべてのファイルをリストし、各ファイルに関する情報を出力します。ファイルを削除したり、ファイルをコピーしたりする場合は、deleteObject や copyObject などのメソッドを使用できます。

概要

この記事の導入部を通じて、PHP と Amazon S3 を使用してファイルを保存および管理する方法を理解できました。実際の開発では、バケットへのフォルダーのアップロードやライフサイクルルールの設定など、特定のニーズに応じて AWS PHP SDK が提供する他の機能も使用できます。最後に、詳細については、AWS 公式ドキュメントを詳しく読むことをお勧めします。

以上がPHP と Amazon S3 を使用してファイルを保存および管理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート