Google云产品
  • Introduction
  • google cloud
    • Cloud Functions
    • Pub / Sub
      • 资料
    • Cloud Storage
      • gsutil 挂载工具
    • Cloud Dataflow
      • 入门
      • 创建和运行模板
      • Apache Beam
        • 介绍
        • Apache Beam SDK 的流水线基础知识
    • BigQuery
      • 入门
      • 运行和管理作业
      • 数据集操作
      • 处理表架构(表字段的修改)
      • 处理表
      • 使用分区表
      • 资料
      • php代码
    • 常用
  • Cloudinary
Powered by GitBook
On this page
  • node 实例
  • php代实例
  • search
  • upload
  • 注意一个概念:Transformations

Was this helpful?

Cloudinary

Previous常用

Last updated 5 years ago

Was this helpful?

官方网址:

php sdk:

nodejs sdk :

api地址:

node 实例

const cloudinary = require('cloudinary');


cloudinary.config({
    "cloud_name": "",
    "api_key": "",
    "api_secret": ""
});


// 一些reporter信息
cloudinary.v2.api.usage(function(error, result) {

    //console.log(result);

});

// search
cloudinary.v2.search
//.expression('tags:"productId:8718475849711"')
// .expression('public_id="live/*"')
//.expression('public_id="live/8718475964872/11*"')
    .expression('created_at >= 2020-03-19 AND created_at<=2020-03-20')
    //.expression('created_at > 2020-02-01')
    .with_field('tags')
    .sort_by('public_id','desc')
    .max_results(0)
    .execute().then(result=>console.log(result['total_count']));

php代实例

search

<?php
set_time_limit(0);

require_once __DIR__ . '/vendor/autoload.php';
use Cloudinary\Cloudinary;
use Cloudinary\Api\Search\SearchApi;

$searchapi = new SearchApi(
    [
        'account' => [
            'cloud_name' => '',
            'key'        => '',
            'secret'     => '',
        ],
    ]
);


$i = 0;
$fp = fopen("images.csv", "w");
if (($handle = fopen("images.csv", "a+")) !== FALSE) {
    $nextCursor = 'init';
    while (!empty($nextCursor)) {
        $query = '';
        if (!empty($nextCursor) && $nextCursor !='init') {
           $query =  $searchapi->nextCursor($nextCursor);
        } else {
            $query = $searchapi->expression('created_at<=2020-03-01 AND created_at>=2020-02-01')
          // $query = $searchapi->expression('created_at > 2020-02-01')
            ->maxResults(500)
            ->sortBy('created_at', 'asc')
            ->withField('tags');
        }
    
        $results = $query->execute();
        $i = $i + 500 ;
        echo 'total:' . $i . '/'.$results['total_count'] . PHP_EOL;
        echo count($results['resources']).PHP_EOL;
        echo $nextCursor.PHP_EOL;
        if (!empty($results['next_cursor'])) {
            $nextCursor = $results['next_cursor'];
        } else {
            $nextCursor = '';
        }
        
       $lines = getPublicIds($results['resources']);
       fwrite($handle,$lines);
    }
}

fclose($handle);

function getPublicIds($resources) {
   $exports = '';
   foreach ($resources as $resource) {
       preg_match('/(\d{4,})/', $resource['public_id'],$matches);
       $exports .= implode(",",array(
           $matches[0],
           $resource['public_id'],
           $resource['folder'],
           $resource['filename'],
           $resource['format'],
           $resource['created_at'],
           $resource['uploaded_at'],
           $resource['width'],
           $resource['height']
       ))."\n";
   }
   return $exports;
}

upload

<?php
set_time_limit(0);

require_once __DIR__ . '/vendor/autoload.php';
use Cloudinary\Cloudinary;
use Cloudinary\Api\Search\SearchApi;

$cloudinary = new Cloudinary(
    [
        'account' => [
            'cloud_name' => '',
            'key'        => '',
            'secret'     => '',
        ],
    ]
); 


$result = $cloudinary->uploadApi()->upload('/home/revin/图片/logo-new.png',
    array(
            "public_id"=> 'live/1234456',
            "use_filename"=> false,
            "unique_filename"=>true,
            // Folder is setup in public_id
            // folder: (envTest ? 'test' : 'live'),
            "overwrite"=> true,
            // Valid values: image, raw, video and auto
            "resource_type"=> 'image',
            "type"=> 'upload',
            "tags" => [ 'live',
                        'base_url:' + '123',
                        'timestamp:'],
            "eager" => ['q_jpegmini','q_jpegmini:1','t_media_lib_thumb','c_scale,w_1000','g_face'],
            "eager_async"=> true,
            "async" => false,
            "image_metadata"=>false,
            "secure" => true,
            "quality" => 'auto',
            "format" => 'png',
        ));
var_dump($result);

注意一个概念:Transformations

这个是在transformations中设置一些不同的规格.

然后upload的时候,通过eager参数进行设置是否需要转换成什么规格的.

注意:Transformations的resize 的图片不计算在 image 数据量上.比如现在39,上传了一张图片,并且resize 了4种规格.,但是图片总数量只会是增加1.

注意:当你replace一张图片,public id 是唯一标注图片的.替换图片,created_at 不会变,只会变update_at(在公司里,是先purge,所以每次会是一张新的created,而非替换)

https://cloudinary.com
https://github.com/cloudinary/cloudinary_php_v2
https://www.npmjs.com/package/cloudinary
https://cloudinary.com/documentation/cloudinary_references