Cloudinaryにアップロードする方法を解説(PHP)

cloudinary
スポンサーリンク

はじめに

Cloudinaryについて、調べたこと、試したことのメモになります
間違っていたり、より良いアプローチがあったり、いろいろと至らない部分も多々あるかと思います

PHP SDK のインストール

PHP SDK のインストールには、Composer を使用する方法と、Composer を使用しない方法が用意されています

Composer を使う場合

composer.json に以下を記載

{
  "require": {
    "cloudinary/cloudinary_php": "dev-master"
  }
}

インストール

$ php composer.phar install

Composer を使わない場合

Cloudinary の github からソース一式をダウンロードします

https://github.com/cloudinary/cloudinary_php/tarball/master

ダウンロードしたファイルを解凍し、autoload.php と src フォルダを任意の場所へコピーします

autoload.php と、必要に応じて Helpers.php を require します

require 'autoload.php';
require 'Helpers.php'; //optional for using the cl_image_tag and cl_video_tag helper methods

コンフィグの設定

準備するもの

Cloudinary のコンソールを開き、”Cloud name”、”API Key”、”API Secret”をメモしておきます

設定方法

Cloudinary クラスの config メソッドを使って設定します

\Cloudinary::config(array( 
  "cloud_name" => "my_cloud_name", 
  "api_key" => "my_key", 
  "api_secret" => "my_secret", 
  "secure" => true
));

私はこんな感じでやっています

フレームワークのコンフィグとして、以下のようなcloudinary用のファイルを用意し、読み込むようにしています

<?php
require_once __DIR__ . '/../vendor/cloudinary/autoload.php';
require_once __DIR__ . '/../vendor/cloudinary/src/Helpers.php';

Cloudinary::config(array(
    'cloud_name' => 'my_cloud_name',
    'api_key' => 'my_key',
    'api_secret' => 'my_secret',
    "secure" => true,
));

return array();

アップロードする

アップロードには、Uploader::upload 関数を使用します

$result = \Cloudinary\Uploader::upload($file, $option);

代表的なオプションについて

オプション名デフォルト説明
public_idStringアップロードしたリソースに対する識別子
フォルダパスを含めた形での指定も可能
folderStringアップロードしたリソースの保存フォルダ
use_filenameBooleanfalseアップロードファイルのファイル名をそのまま使用するかどうか
unique_filenameBooleantrueユニークなファイル名となるようにランダムな文字列を付与するかどうか
typeString“upload”“private” または “authenticated” を指定することでリソースの公開を制限することが可能
overwriteBooleantrue同一のpublic_idを上書きするかどうか
tagsStringリソースに対してタグを付ける
カンマ区切りで複数のタグを指定可能

その他の使用できるオプションは以下を参照ください

Upload API Reference | Cloudinary
Cloud-based Upload API with extensive options for uploading,...

おわりに

PHPを使ったCloudinaryへのアップロードは、少しの設定と、提供されたライブラリを使用することで簡単に行うことが出来ます

コメント

タイトルとURLをコピーしました