HTTP 狀態(tài)消息
1282
2025-04-04
首先使用?composer在項(xiàng)目中下載aws:
composer require aws/aws-sdk-php
/*
* AWS S3上傳文件
* @param string $file 文件名稱
* @return array $path
*/
public function fileUpload($file){
//設(shè)置超時(shí)
set_time_limit(0);
//證書 AWS access KEY ID ?和 ?AWS secret ?access KEY 替換成自己的
$credentials = new Aws\Credentials\Credentials('AWS access KEY ID ', 'AWS secret ?access KEY');
//s3客戶端
$s3 = new Aws\S3\S3Client([
'version' ? ? => 'latest',
//地區(qū) 亞太區(qū)域(新加坡)?? ?AWS區(qū)域和終端節(jié)點(diǎn): http://docs.amazonaws.cn/general/latest/gr/rande.html
'region' ? ? ?=> 'ap-southeast-1',
//加載證書
'credentials' => $credentials,
//開(kāi)啟bug調(diào)試
//'debug' ? => true
]);
//存儲(chǔ)桶 獲取AWS存儲(chǔ)桶的名稱
$bucket = 'test';//'AWS存儲(chǔ)桶名稱';
//需要上傳的文件
$source = ROOT_PATH.$file; //ROOT_PATH項(xiàng)目根目錄,文件的本地路徑例:D:/www/abc.jpg;
//多部件上傳
$uploader = new Aws\S3\MultipartUploader($s3, $source, [
//存儲(chǔ)桶
'bucket' => $bucket,
//上傳后的新地址
'key' ? ?=> $file,
//設(shè)置訪問(wèn)權(quán)限 ?公開(kāi),不然訪問(wèn)不了
'ACL' ? ?=> 'public-read',
//分段上傳
'before_initiate' => function (\Aws\Command $command) {
// $command is a CreateMultipartUpload operation
$command['CacheControl'] = 'max-age=3600';
},
'before_upload' ? => function (\Aws\Command $command) {
// $command is an UploadPart operation
$command['RequestPayer'] = 'requester';
},
'before_complete' => function (\Aws\Command $command) {
// $command is a CompleteMultipartUpload operation
$command['RequestPayer'] = 'requester';
},
]);
try {
$result = $uploader->upload();
//上傳成功--返回上傳后的地址
$data = [
'type' => '1',
'data' => urldecode($result['ObjectURL'])
];
} catch (Aws\Exception\MultipartUploadException $e) {
//上傳失敗--返回錯(cuò)誤信息
$uploader = ?new Aws\S3\MultipartUploader($s3, $source, [
'state' => $e->getState(),
]);
$data = [
'type' => '0',
'data' => ?$e->getMessage();
];
}
return $data;
}
參考鏈接:https://blog.csdn.net/u011477914/article/details/88534191
官方操作文檔:https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/dev/mpuoverview.html
PHP
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。