大象笔记

知者行之始,行者知之成

七牛云存储使用 qshell 批量下载文件并打压缩包的方案

我使用☁️七牛云存储了一堆 pdf 文件,我想批量下载其中的一部分,打包成一个压缩包。 最好是不需要通过我的服务器中转,能在七牛云上直接完成。 qshell 还是 pfop mkzip 通过七牛云官方命令行工具 qshell 实现本地批量下载+自动压缩,全程无需服务器中转。类似在 linux 终端里使用 wget 或者 curl 命令一样 使用七牛云 mkzip 异步处理接口,直接在云端打包,生成压缩包后下载。但是官方的 mkzip 文档太简陋了,我没有找到怎么对文件改名的操作。而且,如果一个文件变更,整个压缩包都需要重新打包。这样成本太高。所以,我还是选择 qshell 来下载文件。 纠 ...

阅读全文...

gpt 4o 与 gpt 4.1 的区别?为何 4.1 在 GitHub copilot pro 中是免费的基础模型

由于 GitHub copilot pro 账号六月份开始也对高级模型调用次数进行了限制,每个月限制使用 300 次。所以这个月,我把 chat 窗口中的默认模型从 claude 3.7 换成了没有次数限制的 gpt 4.1。参考这张模型与消费次数的对应关系。调用一次 gpt 4.5 会消耗 50 次配额,这个太吓人了吧😱 参考官方文档: https://docs.github.com/en/copilot/managing-copilot/monitoring-usage-and-entitlements/about-premium-requests ❓ 什么是 premium reque ...

阅读全文...

Magento 添加全局 CSS 样式

进入 Magento 后台 Content - Configuration 。 选择 Global 或者某个指定 Store。 HTML Head 中的 Scripts and Style Sheets 添加配置: <style> .action.primary { background: #e74c3c !important; } </style> 保存后刷新缓存 ...

阅读全文...

Magento 子店铺域名修改

需求 把所有 a.sunzhongwei.com 改为 b.sunzhongwei.com code 保存在哪里 nginx: c.sunzhongwei.com.conf 修改策略 原 a 的 config 文件备份一份,新建一个 b 的配置文件。 把所有 a.sunzhongwei.com 改为 b.sunzhongwei.com,然后 https 的配置去掉。 改成 80 端口监听 通过 certbot 申请新的证书 重启 nginx 服务 magento 后台修改域名 登录 Magento 后台 进入 Stores > Configuration > General ...

阅读全文...

午夜惊魂,在家发版本,线上 golang 找不到 GLIBC 版本导致服务挂掉

昨晚接到紧急需求,需要增加一个搜索功能。当时在家里,感觉很简单的需求, 随便改改,直接发布到线上服务器就行,毕竟我大 golang 只要能编译通过,基本不会有大问题 😏。 但是,不出意外,出了意外。自动发布脚本,在重启 systemd 服务后, 使用 systemctl status 查看状态,发现 golang 服务没有启动成功。 通过命令行单独启动 go 服务,发现报错: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found 还好,我发布前,将可执行程序备份了一份。。。挂了一分钟,我就悄悄恢复了,险些提桶跑路。 ...

阅读全文...

阿里云群发短信通知的失败问题排查

在开发的大赛报名系统,截至尾声,组织方希望群发一条短信通知所有参赛队的队长, 赶紧提交作品,不要挤在最后一天,防止人多导致系统卡顿。毕竟大量的文件及视频上传。 但是,众所周知的原因,现在发送验证码短信的成功率都达不到 98%,特别是贵州移动的手机号。 怎么都收不到短信验证码。 我担心群发短信,会不会也有类似的问题? 更难的地方是,组织方给出的短信模板是 180 多个字符,相当于要发送 3 条短信才能发送完整。 我担心的是: 成本太高。预留的额度不够 文字越多,触发敏感词被拦截的概率越高。 于是,用我仅有的两个报备成功的签名进行群发测试,结果如下: 签名一【XXX】,这个短信签名(目前用于 ...

阅读全文...

Magento .phtml 代码中获取当前域名,并条件输出菜单

不知道为啥,使用 Magento 的 Mage::app() 获取 store 信息会导致网站崩溃。。。 所以,直接使用纯 PHP 的方式获取当前域名。 纯 PHP 的实现 <?php //$storeName = Mage::app()->getStore()->getName(); // 这行会导致网站崩溃,所以换个 PHP 的方式获取域名 $domain = $_SERVER['HTTP_HOST']; ?> <span><?php echo $domain; ?></span> 条件输出菜单 <?php if ...

阅读全文...

golang gin 基于 Casbin 实现权限控制

最近在使用 golang gin 开发一套公司内部的人事管理系统,但是发现权限管理比之前搞的系统要复杂不少, 所以我想借机了解一下传说中的 Casbin 权限控制库,看看是否可以借鉴一下。 涉及权限控制的需求场景 人事部门负责人需要能看到所有的人事数据 人事部门的普通 HR,只能看到部分部门的人事数据。即只能看到自己负责的部门数据 IT 部门或者行政部门指定人员,能看到资产管理模块的数据。即每个员工有哪些名下资产,显示器,主机,桌子椅子之类的。方便离职时进行资产回收。 部门负责人能看到自己部门的所有员工数据,除了薪资相关的字段。且只有看的权限。不能修改和删除。 员工个人能通过企业微信的授权登 ...

阅读全文...

对话机器人 Rasa(四十一):两例 slot 未赋值问题

突然习惯了在 rasa custom action 中直接赋值 slot, 而不在 yml 流程中注明。 我发现在 rasa 中,如果不在 stories.yml 中写明 slot_was_set,则对应的 slot 就不会在 custom action 中赋值成功,这是为什么? 而有的流程,不在 stories.yml 中标注 slot_was_set,slot 也能赋值成功。 实际上,这是一个错觉。 因为,实际测试发现。只有特地类型的 slot 需要在 stories 中写明 slot_was_set,其他类型的 slot 都可以在 custom action 中直接赋值。 案例一:影响流 ...

阅读全文...

对话机器人 Rasa(四十):一则 FollowUpAction 引起的随机返回问题

问题现象 在 Rasa 某个 action 中,使用了 FollowUpAction 的方式, 但是在执行过程中,出现了多余返回的问题。 我起初以为是类似之前遇到的 对话机器人 Rasa(二十四):两例多返回额外消息的 bug 定位 ,是因为 slot set 导致的,或者 form loop 未标记结束导致的。 但是,经过一段一段代码逐一注释,并插入调试返回之后。发现问题的根源是 FollowUpAction 的使用。 return [ FollowUpAction("action_next_step"), SetSlot("slot_name", ...

阅读全文...

为了避免律师函警告,从 miniconda 切换到 miniforge

今天无意间在某书上刷到,某公司使用 anaconda 管理 Python 开发环境,收到了律师函。 说是在商用场景下,如果公司超过 200 人,就会收到律师函(虽然公司目前没有这么多人,但是万一哪天超过了呢?)。而 miniconda 也不安全,我没有看懂 miniconda 什么情况下会收函, 但是为了避免律师函警告,折腾了半天,从 miniconda 切换到 miniforge 了,Python 世界的妖孽真多 😅 怪不得安装 miniconda 时,需要同意某个协议,但是正常人谁会去看命令行里的用户协议啊。。。 真是大坑。 什么是 miniforge miniforge 是 minico ...

阅读全文...

公司要在办公电脑上安装加密软件,折腾啊

最近公司要求在所有电脑上安装加密软件。其功能是自动将本机的文件,做加密。 加密之后,要通过聊天软件传给其他人,就得先解密。这个解密流程类似企业微信,或者钉钉里的审批流程。 x,我这里一堆 Excel 批量导入的功能,以及 Word 自动化模板处理功能。不知道到时候怎么上传线上环境。只能每次都走审批流程了。 安装加密软件前的准备 微信聊天记录清空,卸载,只保留企业微信来传输文件。注意是防止个人隐私聊天记录被截屏。 退出 wps 账号,并清空本地文件。防止个人文档被加密后,同步到 wps 云盘。那就麻烦了。 安装 我看了一下安装的是北京亿赛通科技的加密软件,没有听说过。 测试 测试了一下,目前 ...

阅读全文...