更新
移除本地儲存, 要儲存在本地,用
hf
的方法就好了。增加cos儲存
增加
put
方法改善之前的程式碼
安裝
composer require lyxxxh/filestore
php bin/hyperf.php vendor:publish lyxxxh/filestore
// 釋出配置
- 配置
config/autoload/filestore.php
//配置oss'oss' => [ 'appid' => '', 'appsec' => '', 'bucket' => '', 'endpoint' => '', 'socket_timeout' => '5184000', // 設定Socket層傳輸資料的超時時間 'connection_timeout' => '10', //建立連結的超時時間 'save_path' => 'tem/storage/', //儲存目錄 ]
控制器使用
use Xxh\FileStore\Service\FileStoreAbstract;
use Hyperf\HttpServer\Contract\RequestInterface;
use Hyperf\HttpServer\Contract\ResponseInterface;
/**
* 檔案管理
* @Inject
* @var FileStoreAbstract
*/
private $file;
//接收檔案上傳
public function filestore(RequestInterface $request, ResponseInterface $response)
{
$path = $this->file->store(
$request->file('img')
);
return $this->file->url($path);
//http://r-card.oss-cn-beijing.aliyuncs.com/tem/storage/4b7dd3231926a340ab84d53316f17e03.png?OSSAccessKeyId=LTAI4T18SS9GCtpf&Expires=1585834537&Signature=V7OSZEQaWGSG3eYgHUXmXNwTSKQ%3D
}
public function put()
{
$path = $this->file->put('1.txt','Hello World');
return $this->file->url($path);
//http://r-card.oss-cn-beijing.aliyuncs.com/tem/storage/1.txt?OSSAccessKeyId=LTAI4T18SS9GCtpf&Expires=1585834478&Signature=3%2FOi1YB1ggMIet%2F03Q0AnNJ4Aus%3D
}
使用cos
- 新增
config/autoload/dependencies.php
配置Xxh\FileStore\Service\FileStoreAbstract::class => Xxh\FileStore\Service\CosFileStoreService::class
- 配置
config/autoload/filestore.php
的cos
的資訊
擴充套件方法 或者 重寫 (以oss為例)
隨便建立一個檔案 例:
app/Services/OssFileStoreService.php
修改
config/autoload/dependencies.php
為Xxh\FileStore\Service\FileStoreAbstract::class => App\Services\OssFileStoreService::class
OssFileStoreService.php內容
class OssFileStoreService extends Xxh\FileStore\Service\OssFileStoreService
{
//重寫oss put方法
public function put($filename,$str)
{
.....
}
//新增oss delObject方法
public function delObject($filename)
{
$this->getClient()->deleteObjects($this->config['bucket'],$filename);
}
}
擴充套件提供的方法
超過2m無法上傳
預設只能上傳2M的檔案,
請看swoole文件 (package_max_length)
可在config/server.php的
settings =>[
'package_max_length' => 5 * 1024 * 1024 , //5M
.....
]
本作品採用《CC 協議》,轉載必須註明作者和本文連結