更新记录

1.0.0(2023-04-21) 下载此版本

初始版本


平台兼容性

uni-app

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- - - - -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟
- - - - - - - -

其他

多语言 暗黑模式 宽屏模式
× ×

插件介绍

将又拍云上传图片功能进行封装,需要在服务器鉴权才能上传

插件配置及使用

配置属性

debug:开启调试模式,会toast又拍云错误码,缺省不开启 items:图片数组,适用于初始化,更适用于列表展示,缺省空数组 column:展示缩略图列数,缺省4列 space:整体左右间距,图片之间间距取值1/2,缺省16px sizeType:original原图,compressed压缩图,缺省二者都有["compressed","original"] sourceType:相机或相册选项,缺省二者都有["album","camera"] maxCount:最多显示或上传图片数,缺省9 mutiple:是否开启多选,缺省开启 :是否显示上传按钮,缺省显示 :是否可删除图片,缺省可以 :服务器鉴权地址 必填 bucket:又拍云 必填 :又拍云文件夹创建类型,分4种,为:-1=不创建 0=月份 1=日期 2=文件名前十位(文件名为uuid) 缺省0,月份 operator:又拍云操作员账号 必填 uri:图片显示前缀,一般为域名(带http://或https://,并以/结束) 必填 *** suffix:又拍云图片处理版本后缀,如_x200

可用函数

data():参数图片数组,类型为 Array[String],图片显示动态赋值或初始化 urls():获取已经选取上传的图片路径,该路径为去除 属性 uri和suffx 的值,返回数组 Array[String] empty():用于判断当前是否未选取任何图片 complete():用于校验所选图片是否全部已上传完成

服务器鉴权示例

golang

// data 为又拍云提交鉴权自动拼接
signStr := util.UpyunSign("{data参数}", "{操作员密码}")
return map[string]interface{}{"signature": signStr}

func UpyunSign(data, password string) string {
    mac := hmac.New(sha1.New, []byte(md5Str(password)))
    mac.Write([]byte(data))
    signStr := base64.StdEncoding.EncodeToString(mac.Sum(nil))
    return signStr
}
func md5Str(s string) string {
    return fmt.Sprintf("%x", md5.Sum([]byte(s)))
}

java

// data 为又拍云提交鉴权自动拼接
try {
  String signStr = sign("{data参数}", "{操作员密码}");
  return new JsonObject().put("signature", signStr);
} catch (Exception e) {
}

public static String sign(String data, String passWord) throws NoSuchAlgorithmException, SignatureException, InvalidKeyException {
    byte[] hmac = hashHmac(data, md5(passWord));
    return Base64.getEncoder().encodeToString(hmac);
}

public static byte[] hashHmac(String data, String key)
            throws SignatureException, NoSuchAlgorithmException, InvalidKeyException {
    SecretKeySpec signingKey = new SecretKeySpec(key.getBytes(), HMAC_SHA1_ALGORITHM);
    Mac mac = Mac.getInstance(HMAC_SHA1_ALGORITHM);
    mac.init(signingKey);
    return mac.doFinal(data.getBytes());
}

public static String md5(String string) {
    byte[] hash;
    try {
        hash = MessageDigest.getInstance("MD5").digest(string.getBytes(StandardCharsets.UTF_8));
    } catch (NoSuchAlgorithmException e) {
        throw new RuntimeException("MessageDigest不支持MD5Util", e);
    }
    StringBuilder hex = new StringBuilder(hash.length * 2);
    for (byte b : hash) {
        if ((b & 0xFF) < 0x10) hex.append("0");
        hex.append(Integer.toHexString(b & 0xFF));
    }
    return hex.toString();
}

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。