2017-08-04 6 views
0

Softlayerのライブラリを開発したので(明らかにGithub)、これは古くなったドキュメントを持っています。具体的にはコードサンプル(php)の演算子をサポートするように依頼しましたが、 。Laravel 5アプリをオブジェクトストレージバケットに接続するにはどうすればよいですか?

私はhttp://sldn.softlayer.com/reference/objectstorageapiがAPIへの直接的な統合のための良い参考資料かもしれないと私が探しているのは、Object Storageと私のアプリケーションの間の統合を得るためのSDKまたはクライアントライブラリです。

IBMオブジェクトストレージでアプリケーションを統合してラベリングする方法の具体例がありますか?

ありがとうございます。開発者は、IBMオブジェクトストレージとの統合を取得するためにopencloudのような(ラックスペースから)クライアントライブラリや(アマゾン)からS3のクライアントライブラリなどのソリューションを使用することを示唆したところ

+0

多分あなたはファイルシステムドライバを使ってそれを行う必要がありますhttps://laravel.com/docs/5.2/filesystem – geoom

+0

オブジェクトストレージドライバのサポートがありません –

答えて

1

はこのテーマでは、いくつかの研究の後、私は同じ問題で複数のスレッドを発見し、これはと思われます私には少し混乱しますが、それはまったく別の話です。

"league/flysystem-aws-s3-v3": "~1.0"

がサービスproviverとしてカスタムファイルシステムを追加します(docsを見てください):

use Illuminate\Support\ServiceProvider; 
use Aws\S3\S3Client; 
use League\Flysystem\AwsS3v3\AwsS3Adapter; 
use League\Flysystem\Filesystem; 
use Aws\Laravel\AwsServiceProvider; 
use Storage; 

class ObjectStorageServiceProvider extends ServiceProvider 
{ 

    /** 
    * Perform post-registration booting of services. 
    * 
    * @return void 
    */ 
    public function boot() 
    { 
     Storage::extend('object-storage', function($app, $config) { 
      $client = new S3Client([ 
       'credentials' => [ 
        'key' => $config['key'], 
        'secret' => $config['secret'], 
       ], 
       'region' => $config['region'], 
       'version' => $config['version'], 
       'endpoint' => $config['endpoint'], 
       'ua_append' => [ 
        'L5MOD/' . AwsServiceProvider::VERSION, 
       ], 
      ]); 

      return new Filesystem(new AwsS3Adapter($client, $config['bucket_name'])); 
     }); 
    } 

    /** 
    * Register bindings in the container. 
    * 
    * @return void 
    */ 
    public function register() 
    { 
     // 
    } 
} 
あなたがする必要がどのような

は、あなたのcomposer.phpファイル内のファイルシステムドライバとしてAWS S3を有効です

そして、object-storageを登録するサービスプロバイダを作成したら、config/filesystems.php設定ファイルでオブジェクトストレージドライバを使用できるようになりました。

'object-storage' => [ 
    'driver' => 'object-storage', 
    'key' => env('OS_KEY', ''), 
    'secret' => env('OS_SECRET', ''), 
    'region' => env('OS_REGION', ''), 
    'version' => 'latest', 
    'endpoint' => env('OS_ENDPOINT', ''), 
    'bucket_name' => env('OS_BUCKET_NAME', '') 
], 

これですべてが完了しました。これでLaravelアプリのオブジェクトストレージバケットを使用できるようになりました。

+0

あなたは私の日を救います、それはとてもうまく動作します、ありがとう –

関連する問題