


Comment ThinkPHP implémente les fonctions de téléchargement et de transcodage de Qiniu Cloud Storage
Apr 11, 2023 am 09:15 AMAvec le développement continu de la technologie Internet, le stockage dans le cloud est de plus en plus largement utilisé, en particulier les sites Web vidéo et les sites Web audio. Ces sites Web offrent aux utilisateurs une visualisation ou une écoute en ligne, et derrière tout cela se trouve la technologie de stockage dans le cloud. Qiniu Cloud Storage, en tant que principal fournisseur national de services de stockage cloud, propose une large gamme d'applications dans l'industrie Internet, en particulier dans le téléchargement multimédia, le stockage, l'accélération et la distribution, etc., et offre de bonnes performances. Ainsi, dans cet article, nous utiliserons ThinkPHP comme exemple pour présenter les fonctions de téléchargement et de transcodage de Qiniu Cloud Storage.
1. Qu'est-ce que ThinkPHP
ThinkPHP est un framework PHP gratuit et open source créé par des développeurs chinois. Il permet aux développeurs de développer rapidement des applications grace à une configuration et un packaging simples. ThinkPHP prend pleinement en compte les besoins réels du développement Web et intègre vigoureusement d'excellents travaux dans la communauté open source pour répondre pleinement aux besoins des développeurs Web.
2. Qu'est-ce que Qiniu Cloud Storage?? Qiniu Cloud Storage est un fournisseur de services de stockage cloud rapide et simple qui vise à fournir aux utilisateurs des services de stockage cloud fiables, efficaces et sécurisés. Qiniu Cloud Storage peut fournir des services de stockage, de gestion et de distribution de fichiers multimédias. Les utilisateurs doivent uniquement télécharger leurs propres fichiers multimédias sur Qiniu Cloud Storage, et ils peuvent être accélérés via le CDN de Qiniu, permettant aux utilisateurs d'accéder à ces fichiers plus rapidement et plus facilement.
3. Comment ThinkPHP implémente le téléchargement de Qiniu Cloud Storage
Pour utiliser la fonction de téléchargement de Qiniu Cloud Storage dans le framework ThinkPHP, vous devez d'abord introduire la classe d'authentification et le SDK Qiniu Cloud Storage dans le cadre du projet pour traiter les informations d'authentification. pendant le téléchargement?:
require_once('Auth.php'); require_once('Config.php'); require_once('autoload.php');//引入七牛SDK $accessKey?=?'可以從七牛后臺獲得'; $secretKey?=?'可以從七牛后臺獲得'; //鑒權(quán)對象 $auth?=?new?Auth($accessKey,?$secretKey);?? //生成上傳Token $bucket?=?'要上傳的bucket名稱';//bucket名稱 $key?=?'要生成的文件名';//文件名稱 $options['returnBody']?=?'{"name":?$(fname),?"size":?$(fsize),?"hash":?$(etag),?"url":?"http://example.com/$(key)"}';//要返回的信息 $policy?=?array( ????'returnBody'??????=>??json_encode($options['returnBody']),//返回給客戶端的信息 ????'saveKey'?????????=>??$key,//上傳的文件名 ); $upToken?=?$auth->uploadToken($bucket,?null,?3600,?$policy);//生成上傳Token
Après cela, utilisez le SDK Javascript de Qiniu Cloud Storage dans la page pour réaliser les fonctions de sélection de fichiers et de téléchargement?:
<script src="http://cdn.staticfile.org/plupload/2.1.1/plupload.full.min.js"></script> <script type="text/javascript"> ????//設(shè)置上傳參數(shù) ????var?uploader?=?new?plupload.Uploader({ ????????browse_button:?'browse',?//觸發(fā)選擇文件對話框的按鈕 ????????url:?'http://upload.qiniup.com/',?//服務(wù)器端的上傳頁面地址 ????????flash_swf_url:?'path/of/plupload/Moxie.swf',//swf文件,用于解決跨域或不支持xhr2的瀏覽器上傳問題 ????????silverlight_xap_url:?'path/of/plupload/Moxie.xap',//silverlight文件,用于解決跨域或不支持xhr2的瀏覽器上傳問題 ????????chunk_size:?'4mb',//分塊上傳的塊大小 ????????multi_selection:?false,//是否支持多選 ????????filters:?{ ????????????max_file_size:?'10mb',//最大文件大小 ????????????mime_types:?[ ??????????????{title:?"Image?files",?extensions:?"jpg,gif,png,jpeg,webp"}, ??????????????{title:?"Video?files",?extensions:?"avi,mp4,mkv,flv,mov"}, ??????????????{title:?"Audio?files",?extensions:?"mp3,wma,ogg,wav"}, ????????????]//上傳文件類型限制 ????????}, ????????multipart:?true,//是否將文件分塊上傳 ????????multipart_params:?{//通常只能上傳原始二進(jìn)制文件到流中,而文件的信息必須存在于HTTP請求的上下文中 ????????????key:?'文件名稱', ????????????token:?'{$uptoken}', ????????} ????}); ????//綁定觸發(fā)上傳的事件 ????uploader.bind('FilesAdded',?function(up,?files)?{ ???????uploader.start();//當(dāng)文件被添加到上傳隊列后開始上傳流程 ????}); ????//綁定上傳過程的事件 ????uploader.bind('UploadProgress',?function(up,?file)?{ ????????var?percent?=?file.percent; ????}); ????//綁定上傳成功的事件 ????uploader.bind('FileUploaded',?function(up,?file,?info)?{ ????????var?result?=?JSON.parse(info.response); ????????console.log(result.url);//獲取上傳成功后的文件鏈接 ????}); ????//綁定上傳失敗的事件 ????uploader.bind('Error',?function(up,?err)?{ ????????if(err.code==-601){//文件格式不符合 ???????????console.log('上傳失?。何募袷讲环弦?); ????????}else?if(err.code==-200){//文件太大 ???????????console.log('上傳失敗:文件大小超出限制'); ????????}else{ ???????????console.log(err.message);//其他失敗信息 ????????} ????}); ????//啟動上傳 ????uploader.init(); </script>
4 Comment ThinkPHP utilise la fonction de transcodage de Qiniu Cloud Storage
Pour certains sites Web vidéo et sites Web audio. etc., les fichiers audio et vidéo téléchargés par les utilisateurs doivent souvent être transcodés pour qu'ils répondent aux exigences du site Web. à ce stade, vous devez utiliser la fonction de transcodage de Qiniu Cloud Storage, qui peut automatiquement transcoder l'audio et la vidéo. et générer des liens de lecture dans divers formats permettent aux utilisateurs de regarder ou d'écouter en ligne. Dans le framework ThinkPHP, l'utilisation de la fonction de transcodage de Qiniu Cloud Storage nécessite l'installation du package composer. Utilisez composer pour installer :
composer?require?qiniu/php-sdk
Une fois l'installation terminée, le transcodage audio et vidéo peut être réalisé via le SDK PHP Pour des opérations de transcodage spécifiques, veuillez vous référer à :
require?__DIR__?.?'/vendor/autoload.php'; use?Qiniu\Auth; use?Qiniu\Storage\BucketManager; use?Qiniu\Storage\UploadManager; $accessKey?=?'your?accessKey'; $secretKey?=?'your?secretKey'; //鑒權(quán)對象 $auth?=?new?Auth($accessKey,?$secretKey); //空間名稱 $bucket?=?'your?bucket'; //文件保存鍵名 $key?=?'your?key'; //上傳文件的本地路徑 $filePath?=?'your?filepath'; //上傳的轉(zhuǎn)碼參數(shù) $pfop?=?"avthumb/mp4"; //對于使用自己私有的codec庫時需要制定so路徑,?在<SoSdkPath>中填入so文件路徑。其他情況則沒必要,?該參數(shù)可以不填。 $encoding_codec_lib_path?=?null; $urlbase64?=?\Qiniu\base64_urlSafeEncode($bucket?.?':'?.?$key); //設(shè)置回調(diào)的URL地址 $notifyUrl?=?'http://yourdomain.com/callback.php'; //轉(zhuǎn)碼完成后回調(diào)指向的地址 $fops?=?$pfop.?'|saveas/'?.?\Qiniu\base64_urlSafeEncode("$bucket:$key")?.?'|notifyURL/'?.?$notifyUrl; //初始化BucketManager $config?=?new?\SDK\Qiniu\Config(); $config->zone?=?new?\SDK\Qiniu\Zone\Zhuanqu(); $bucketManager?=?new?BucketManager($auth,?$config); //調(diào)用fetch方法拉取網(wǎng)絡(luò)上的一個資源,該資源用于轉(zhuǎn)碼,該方式不支持本地音視頻文件的轉(zhuǎn)碼處理 $fetchResult?=?$bucketManager->fetch($url,?$bucket,?$key,?$pfop); if($fetchResult?!=?null){ ????//上傳流程 ????$uploadMgr?=?new?UploadManager($config); ????list($ret,?$err)?=?$uploadMgr->putFile($token,?$key,?$filePath?,null,$encoding_codec_lib_path); ????if?($err?!==?null)?{ ????????echo?'上傳失敗:',?$err->message(),?"\n"; ????}?else?{ ????????echo?'上傳成功:',?$ret['key'],?"\n"; ????????//持久化處理并等待處理結(jié)果 ????????$persistentOps?=?$fops;//音視頻持久化處理的詳細(xì)指令,多個指令用;隔開 ????????$pipeline?=?'';//進(jìn)行轉(zhuǎn)碼的隊列名稱,不傳此參數(shù)將使用默認(rèn)隊列 ????????$force?=?true;//強(qiáng)制覆蓋已有的同名文件 ????????//調(diào)用持久化處理接口實現(xiàn)音視頻轉(zhuǎn)碼等持久化操作(不支持本地音視頻文件的轉(zhuǎn)碼處理)。 ????????list($ret,?$err)?=?$bucketManager->persistentFop($bucket,?$key,?$persistentOps,?$pipeline,?$force); ????????if?($err?!==?null)?{ ????????????var_dump($err); ????????}?else?{ ????????????var_dump($ret); ????????} ????} }
5. Conclusion
J'espère que grace à l'introduction de cet article, tout le monde pourra avoir une compréhension plus approfondie des fonctions de téléchargement et de transcodage de Qiniu Cloud Storage, et réaliser les opérations de téléchargement et de transcodage de Qiniu Cloud Storage dans le cadre ThinkPHP. Pour apprendre une connaissance, ce n'est que par une pratique continue et un résumé que vous pourrez vraiment la ma?triser et l'appliquer librement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)