Cloudinary
Last updated
Was this helpful?
Last updated
Was this helpful?
官方网址:
php sdk:
nodejs sdk :
api地址:
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
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;
}
<?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中设置一些不同的规格.
然后upload的时候,通过eager参数进行设置是否需要转换成什么规格的.
注意:Transformations的resize 的图片不计算在 image 数据量上.比如现在39,上传了一张图片,并且resize 了4种规格.,但是图片总数量只会是增加1.
注意:当你replace一张图片,public id 是唯一标注图片的.替换图片,created_at 不会变,只会变update_at(在公司里,是先purge,所以每次会是一张新的created,而非替换)