智简魔方文档

对象存储开发

位置

插件放在 public/plugins/oss/ 目录下

目录结构

public/plugins/oss/tencentcloud_oss
|--- config(自定义配置)
|--- config.php(自定义配置文件)
|--- TencentcloudOss.php(对象存储主文件)
|--- config.php(配置文件,系统后台可配置)

开发流程

本企业版当前内置 local_oss。以下沿用官方腾讯云对象存储示例说明自定义对象存储驱动的写法:

创建腾讯云对象存储目录 public/plugins/oss/tencentcloud_oss/

①目录名以小写字母+下划线形式,必须以字母开头,如tencentcloud_oss;

创建入口文件:TencentcloudOss.php

命名空间namespace oss\tencentcloud_oss(控制器下命名空间对应相应目录即可,其它同理);

②以目录名大驼峰 + .php,创建在对象存储接口根目录下,如:

tencentcloud_oss\TencentcloudOss.php

③文件中需要定义info属性,示例:

// 插件基础信息
public $info = array(
    'name'        => 'TencentcloudOss',//Demo插件英文名,改成你的插件英文就行了
    'title'       => '腾讯云对象存储',
    'description' => '腾讯云对象存储',
    'status'      => 1,
    'author'      => '智简魔方',
    'version'     => '1.0.0',
    'module'      => 'oss',
    'help_url'    => 'https://cloud.tencent.com/product/cos'
);

④必须实现install()安装以及uninstall()卸载方法

⑤必须实现'目录名大驼峰+Link'方法,用于检测对象存储是否联通,如:

public function TencentcloudOssLink()

⑥必须实现'目录名大驼峰+Data'方法,用于判断对象存储是否有数据,如:

public function TencentcloudOssData()

此方法无参数。

⑥必须实现'目录名大驼峰+Upload'方法,用于文件上传,如:

方法签名:

public function TencentcloudOssUpload($param)

参数 param 为数组,以下使用 JSON 展示:

{"file_path":"/test/","file_name":"test.png"}

参数说明

参数类型必填说明
file_pathstring文件保存路径
file_namestring文件名

返回值

字段类型说明
data.urlstring文件访问地址

⑦必须实现'目录名大驼峰+Download'方法,参数param(此参数为数组,示例json方便显示):

{"file_path":"/test/","file_name":"test.png","action":"preview"}

参数说明

参数类型必填说明
file_pathstring文件保存路径
file_namestring文件名
actionstring动作,preview预览,download下载

返回值

字段类型说明
data.urlstring文件下载地址

确定是否需要后台配置文件,如果需要,在对象存储根目录下加上config.php,示例

<?php
return [

    'module_name'          => [// 在后台插件配置表单中的键名 ,会是config[text]
        'title' => '名称', // 表单的label标题
        'type'  => 'text', // 表单的类型:text,password,textarea,checkbox,radio,select等
        'value' => '腾讯云对象存储', // 表单的默认值
        'tip'   => '友好的显示名称', //表单的帮助提示
    ],
    'secret_id'  => [                       // 在后台插件配置表单中的键名 ,会是config[text]
        'title' => 'Secret ID',             // 表单的label标题
        'type'  => 'text',              // 表单的类型:text,password,textarea,checkbox,radio,select等
        'value' => '',                  // 表单的默认值
        'tip'   => 'Client ID', //表单的帮助提示
    ],
    'secret_key'    => [
        'title' => 'Secret Key',
        'type'  => 'password',
        'value' => '',
        'tip'   => 'Secret Key,保存后不应完整回显',
    ],
    'bucket'    => [
        'title' => 'Bucket',
        'type'  => 'text',
        'value' => '',
        'tip'   => '存储桶名称',
    ],
    'region'    => [
        'title' => 'Region',
        'type'  => 'text',
        'value' => '',
        'tip'   => 'Bucket 所在区域',
    ],

];

到后台存储对象接口管理界面刷新就会看到新添加的存储对象接口,安装、配置即可使用

示例

参考腾讯云对象存储tencentcloud_oss

常见问题