FuelPHPでGoogleCloudStrageにファイルをアップロードするやりかたをメモ。
Googleサービスを利用する際に必用なパッケージは下記のリンクを参考にしてください。
http://bm-server.net/?p=319
パッケージは準備済みで記載します。
GoogleCloudStrageにアクセスするための認証設定は下記を参考にしています。
※ ソースも参考にさせていただきました。
http://qiita.com/ngyuki/items/6c0782737ba327150c97
簡潔にソースコードは以下になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
/** * Google Cloud Storage にファイルをアップロード * @param string $name アップ後のファイルの場所 例)xx/xxxx/test.jpq * @param string $data アップしたいファイル 例) /var/www/xxx/xxx.jpg */ public static function upload($name, $data) { // パッケージを読み込み。設定ファイルで読み込みしている場合は不要。 Package::load('gdata'); // ストレージようにクライアントを作成 $gdata = Gdata::forge( 'Storage', $instance_name = 'default', $config = array() ); // 認証に必用なjsonファイル $json_path = APPPATH . 'json/xxxx.json'; // アクセストークン保存用 $accessTokenPath = APPPATH . 'cache/accessToken.txt'; // アクセストークンファイルがあれば使用する if (is_file($accessTokenPath)) { $gdata->client->setAccessToken(file_get_contents($accessTokenPath)); } // JSONキーからクレデンシャルをロードする // スコープには Storage の read/write を指定する $credential = $gdata->client->loadServiceAccountJson( $json_path, [Google_Service_Storage::DEVSTORAGE_READ_WRITE] ); // クレデンシャルをクライアントに設定する $gdata->client->setAssertionCredentials($credential); /* @var $auth Google_Auth_OAuth2 */ $auth = $gdata->client->getAuth(); // アクセストークンの有効期限を確認する // 有効期限切れなら再取得して保存する if ($auth->isAccessTokenExpired()) { $auth->refreshTokenWithAssertion($credential); file_put_contents($accessTokenPath, $gdata->client->getAccessToken()); } // ストレージサービスを作成する $storage = new Google_Service_Storage($gdata->client); // ストレージオブジェクトを作成する $obj = new Google_Service_Storage_StorageObject(); $obj->setName($name); // アップロードする $storage->objects->insert('バケット名を指定', $obj, [ 'name' => $name, 'data' => file_get_contents($data), 'uploadType' => 'media', ]); } |
こんな感じでした。
ファイルをアップするのは結構簡単にできそうです。
2 comments to this article
Pingback:
【FuelPHP】GoogleCloudStrageのファイルを削除 | プログラマのめもぶろぐ
Pingback:
【FuelPHP】Bigqueryにクエリーの実行 | プログラマのめもぶろぐ