ホームページ > バックエンド開発 > PHPチュートリアル > PHP 開発: Flysystem を使用して複数のクラウド ストレージ サービスを実装する

PHP 開発: Flysystem を使用して複数のクラウド ストレージ サービスを実装する

王林
リリース: 2023-06-16 06:04:01
オリジナル
2143 人が閲覧しました

クラウド コンピューティングとクラウド ストレージの発展に伴い、データの保存と送信の問題を解決するためにクラウド ストレージを使用する開発者が増えています。 PHP 開発において、Flysystem は、さまざまなクラウド ストレージ サービスを簡単に使用するための統合 API を提供する非常に便利なツールです。この記事では、Flysystem を使用して複数のクラウド ストレージ サービスを実装する方法を説明し、さまざまなサービスのサンプル コードをいくつか示します。

フライシステムとは何ですか?

Flysystem は、ファイル システムを操作するための PHP ライブラリです。ローカル ファイル システム、FTP、SFTP、Amazon S3、Rackspace Cloud、OpenStack Object Storage、Dropbox、Google Drive などのクラウド ストレージ サービスへのアクセスを可能にする API のセットを提供します。 Flysystem は、ファイルのアップロード、ダウンロード、削除などの一般的な操作を迅速に実装できる非常にシンプルな API を提供します。

フライシステムの使用方法?

Flysystem を使用するには、Composer を通じて関連するパッケージをインストールする必要があります。 Flysystem は次のコマンドでインストールできます:

composer require league/flysystem
ログイン後にコピー

インストールが完了したら、Flysystem の使用を開始できます。以下は簡単な使用例です:

use LeagueFlysystemFilesystem;
use LeagueFlysystemAdapterLocal;

$adapter = new Local(__DIR__.'/files');
$filesystem = new Filesystem($adapter);

$contents = $filesystem->read('hello.txt');
ログイン後にコピー

この例では、ローカル ファイル システム アダプターを作成し、それを使用してファイル システム オブジェクトを作成します。次に、ファイル システム オブジェクトを通じて hello.txt という名前のファイルの内容を読み取ります。

複数のクラウド ストレージ サービスの実装

Flysystem を使用して複数のクラウド ストレージ サービスを実装するには、さまざまなアダプターを使用する必要があります。 Flysystem は多数の異なるアダプターをサポートしており、それぞれが独立しており、異なるクラウド ストレージ サービスで使用できます。

ここでは、いくつかの一般的なアダプターとその使用方法を示します:

  • ローカル アダプター: ローカル ファイル システムにアクセスするために使用されます。

    use LeagueFlysystemAdapterLocal;
    
    $adapter = new Local(__DIR__.'/files');
    ログイン後にコピー
  • FTP アダプター: FTP サーバーにアクセスするために使用されます。

    use LeagueFlysystemAdapterFtp;
    
    $config = [
      'host' => 'ftp.example.com',
      'username' => 'username',
      'password' => 'password',
      'root' => '/public_html/',
    ];
    
    $adapter = new Ftp($config);
    ログイン後にコピー
  • SFTP アダプター: SFTP サーバーへのアクセスに使用されます。

    use LeagueFlysystemSftpSftpAdapter;
    
    $config = [
      'host' => 'sftp.example.com',
      'port' => 22,
      'username' => 'username',
      'password' => 'password',
      'root' => '/public_html/',
    ];
    
    $adapter = new SftpAdapter($config);
    ログイン後にコピー
  • Amazon S3 アダプター: Amazon S3 にアクセスするために使用されます。

    use AwsS3S3Client;
    use LeagueFlysystemAwsS3v3AwsS3Adapter;
    
    $client = new S3Client([
      'region' => 'us-west-2',
      'version' => 'latest',
      'credentials' => [
          'key'    => 'key',
          'secret' => 'secret',
      ],
    ]);
    
    $adapter = new AwsS3Adapter($client, 'bucket-name');
    ログイン後にコピー
  • Rackspace Cloud アダプター: Rackspace Cloud へのアクセスに使用されます。

    use OpenCloudRackspace;
    use LeagueFlysystemRackspaceRackspaceAdapter;
    
    $client = new Rackspace(Rackspace::US_IDENTITY_ENDPOINT, [
      'username' => 'username',
      'apiKey'   => 'apiKey',
    ]);
    
    $adapter = new RackspaceAdapter($client, 'container-name');
    ログイン後にコピー
  • OpenStack Object Storage アダプター: OpenStack Object Storage へのアクセスに使用されます。

    use OpenCloudOpenStack;
    use LeagueFlysystemOpenStackOpenStackAdapter;
    
    $client = new OpenStack('https://identity.example.com/v2.0/', [
      'username' => 'username',
      'password' => 'password',
      'tenantName' => 'tenant-name',
    ]);
    
    $adapter = new OpenStackAdapter($client->objectStoreService(), 'container-name');
    ログイン後にコピー
  • Dropbox アダプター: Dropbox へのアクセスに使用されます。

    use KunnuDropboxDropbox;
    use LeagueFlysystemDropboxDropboxAdapter;
    
    $dropbox = new Dropbox([
      'access_token' => 'access-token',
      'client_identifier' => 'client-identifier', // Optional parameter
    ]);
    
    $adapter = new DropboxAdapter($dropbox);
    ログイン後にコピー
  • Google ドライブ アダプター: Google ドライブにアクセスするために使用されます。

    use SpatieGoogleDriveClient;
    use SpatieFlysystemGoogleDriveGoogleDriveAdapter;
    
    $config = [
      'client_id' => 'client_id',
      'client_secret' => 'client_secret',
      'access_token' => 'access_token',
      'refresh_token' => 'refresh_token',
    ];
    
    $client = new Client($config);
    
    $adapter = new GoogleDriveAdapter($client);
    ログイン後にコピー

    結論

    Flysystem は、さまざまなクラウド ストレージ サービスを簡単に実装できる非常に実用的な PHP ライブラリです。ローカル ファイル システム、FTP、SFTP、Amazon S3、Rackspace Cloud、OpenStack Object Storage、Dropbox、Google Drive のいずれにアクセスしている場合でも、Flysystem を使用できます。 PHPアプリケーションを開発する場合、Flysystemを利用することでファイルのアップロード、ダウンロード、削除などの操作を迅速に実現でき、開発効率がさらに向上します。

    以上がPHP 開発: Flysystem を使用して複数のクラウド ストレージ サービスを実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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