LaravelはテンセントクラウドCOSサービスを利用
1.私たちが開発の過程で、よく画像が多すぎるためサーバーの圧力が増大し、ウェブサイトの運行速度を遅らせる.だから私たちはテンセントのCOSサービスの第一歩を使いました:まずテンセント雲の中にバケツ(リモートストレージ)を申請しますhttps://console.cloud.tencent.com/cos5/bucketステップ2:このバケツを使用するには2つの鍵(クラウドAPI鍵SecretId、クラウドAPI鍵SecretKey)が必要なので、この2つの鍵を申請しなければなりません.https://console.cloud.tencent.com/cos5/keyこの2つのものはすべて完備した後、コード実現過程laravelフレームワーク①: composer require freyo/flysysystem-qcloud-cos-v 5②: config/app.phpのprovidersで追加->>>>FreyoFlysystemQcloudCOSv 5ServiceProvider::class,③:filesystems.phpのdisksの下に追加
④:/filesystems.phpで「default」=>「cosv 5」を変更し、
'disks'=>[
// ...
'cosv5' => [
'driver' => 'cosv5',
'region' => env('COSV5_REGION', 'ap-guangzhou'),
'credentials' => [
'appId' => env('COSV5_APP_ID'),
'secretId' => env('COSV5_SECRET_ID'),
'secretKey' => env('COSV5_SECRET_KEY'),
],
'timeout' => env('COSV5_TIMEOUT', 60),
'connect_timeout' => env('COSV5_CONNECT_TIMEOUT', 60),
'bucket' => env('COSV5_BUCKET'),
'cdn' => env('COSV5_CDN'),
'scheme' => env('COSV5_SCHEME', 'https'),
],
],
④:/filesystems.phpで「default」=>「cosv 5」を変更し、
namespace App\Http\Controllers\crontab;
use Qcloud\Cos\Client;
class CosController extends CrontabBaseController
{
protected $crontab;
protected $user;
protected $cosClient;
public function __construct()
{
parent::__construct();
$secretId = "AKIDvAB0e4hOGxQecOkUlpgHdjZFnAIBmCNM"; //" API SecretId";
$secretKey = "teDWZMuCF2qQlx0oX5NXS7WgbIlz3sVP"; //" API SecretKey";
$region = "ap-beijing"; //
$this->cosClient = new Client(
array(
'region' => $region,
'schema' => 'https', // , http
'credentials'=> array(
'secretId' => $secretId ,
'secretKey' => $secretKey)));
}
/**
* COS
*/
public function add_cos(){
try {
$bucket = 'jiawei-1258859392'; //
$key = "/picture/180927085458.jpeg";//
$srcPath = "http://62.234.77.147//uploads/180927085458.jpeg";//
$result = $this->cosClient->putObject(array(
'Bucket' => $bucket,
'Key' => $key,
'Body' => fopen($srcPath, 'rb')));
print_r($result);
} catch (\Exception $e) {
echo "$e
";
}
}
/**
*
*/
public function listObjects(){
try {
$bucket = "jiawei-1258859392"; // :BucketName-APPID
$prefix = ''; //
$marker = ''; //
while (true) {
$result = $this->cosClient->listObjects(array(
'Bucket' => $bucket,
'Marker' => $marker,
'MaxKeys' => 1000 // , 1000
));
foreach ($result['Contents'] as $rt) {
// key
echo($rt['Key'] . "
");
}
$marker = $result['NextMarker']; //
if (!$result['IsTruncated']) {
break; //
}
}
} catch (\Exception $e) {
echo($e);
}
}
}