阿里云OSS资源路径避坑
更新于|经验
|浏览量:
阿里云 OSS 在解析请求时会把 + 转义成 (空格),这点与 S3 恰恰相反,需要做预处理
文章作者: Sentixxx
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 墨池码窖 | Sentixxx's Blog!
相关推荐
2025-02-14
CPPCLI将第三方DLL链接到CSharp项目
最近需要将第三方的 DLL 封装成 csharp 的模块,可是我没有源码,只有头文件,网上综合调查了方案,最后选择了 C++/CLI 具体可见微软的官方文档 第一步,创建 CLR 项目 这里默认你已经通过各种手段获得了 DLL 和头文件 这里使用 Visual Stdio 创建一个新的 C++ CLR 项目 基本编辑 这里的基本语法还是和 C++一样的 进入项目,自行创建一个类,就会生成一个 CPP 和 H 文件 这里需要在头文件中包含 DLL 内相关函数和类定义的头文件,直接使用绝对路径包含即可 #include "path\to\your\header.h"public ref class YourModule {} 然后像 C++创建一个类那样,设置构造函数和成员函数,并实现 这里你的实现可以直接调用 DLL 中的函数,实现封装。 设置编译选项 右键项目,打开属性,将 Release 的配置类型修改为“动态库(. dll)”,注意这里的目标平台需要和你的 DLL...
2025-01-26
FTP同步服务静默崩溃故障分析:SIGPIPE信号与TCP半关闭状态的致命陷阱
问题 故障情景 业务背景: 技术栈:C++线程池 + FTP 协议长连接 分布式系统中的文件 FTP 同步服务 故障描述: 本地FTP目录同步服务存在非正常进程终止缺陷。当远程FTP服务器发生非计划性停机(服务崩溃/网络中断/强制kill进程)时,本地同步进程发生静默崩溃(无退出状态码、无异常抛出) 故障分析 首先通过打印的 LOG 信息,快速定位到了 tcpSocket 的 Send() 方法中,Send() 方法的实现如下: ssize_t TcpSocket::Send(const void *buf, int len) const { if (!connected_) { return 0; } return ::write(skt_, buf, len);} 添加 try-catch 语句 首先先对其添加了 try-catch 语句尝试捕获异常,发现程序仍然直接退出 事后查阅资料发现,POSIX 的系统调用的错误以返回值出现,因此这里 try-catch 完全无效,应该针对返回值进行...
2025-01-24
WSL2 配置 tensorflow 环境
Windows 系统中更新 NVIDA 驱动 这里可以直接通过 Geforce Experience 直接更新 更新完成后可以在命令行/wsl 中输入 nvidia-smi 可以看到输出 这里的 CUDA Version 指的是该驱动版本最高可支持的 CUDA 版本 安装 CUDA 到 NVIDIA官网下载符合条件的 CUDA 这里我一开始直接选择安装了最新版的 CUDA 12.4,随后发现 Tensorflow 目前 (2024.3.17) 并不支持 12.4,于是重新安装,选择了 CUDA 11.2 直接下载 EXE 版本安装即可 在安装时,会发现安装报错 cuda you already have a newer version of the nvidia frameview sdk installed 这里需要到系统设置里卸载NVIDIA frameview sdk 组件,我使用的是 Geek 进行卸载,很干净 注意:不要直接到 NVIDIA 文件夹删除对应文件 下载 ANACONDA 到最新下载地址找到对应的 ANACONDA...
2025-02-07
tcpdump指定dst端口抓包
tcpdump 在抓包时使用 libpcap filter 作为过滤,这种过滤语法又叫 BPF 语法,其中可以使用 port num 作为语法过滤指定端口的报文,但是有时会发现,当启用过滤后,反而无法从指定端口抓到包,而没有过滤时却可以看到相关的包 遇到这种问题,可能是由于你监听的网卡是 VLAN,VLAN 网卡在发送报文时会加上一个 VLAN 头来标识,这时需要改变原来的语法,使用 vlan and port num 进行过滤,这样就可以识别出 vlan 报文,进而对报文的端口进行识别。 vlan [vlan_id] True if the packet is an IEEE 802.1Q VLAN packet. If the optional vlan_id is specified, only true if the packet has the specified vlan_id. Note that the first vlan keyword encountered in an expression changes the decoding offsets...
2025-01-29
zerotier自建planet容器迁移
最近续费域名发现阿里云服务器 99 一年 2c2g,感觉自己血亏用了一整年的 78/month 的腾讯云,遂决定迁移。 经过测试发现 Zerotier 在迁移后需要根据 IP 重新生成 planet 文件,仍然需要重新分发,目前似乎没有好的解决办法,不如重新安装,安装时服务器的防火墙端口记得开 Nginx 配置 这次有一个阿里云的域名,干脆顺便配个 nginx 首先安装 nginx yum install nginx 然后进入到 nginx 的目录,新建一个配置文件,写入以下内容 cd /etc/nginxvim conf.d/zerotier.conf upstream zerotier { server 127.0.0.1:3443;}server { listen 80; server_name {your_site}; # 替换为自己的域名 location /zerotier/ { proxy_pass http://zerotier/; ...
2025-03-06
以一种访问权限不允许的方式做了一个访问套接字的尝试处理
有一个项目需要运行在本地 http 服务器的 8080 端口上,之前还好的,今天突然就提示 以一种访问权限不允许的方式做了一个访问套接字的尝试, 在管理员模式下运行 netstat -ano | findstr 8080 没有任何输出 上网搜索发现这可能是一个规则问题 https://stackoverflow.com/questions/54671199/kestrel-unable-to-start 尝试执行 netsh interface ipv4 show excludedportrange protocol=tcp,发现 8080 端口不知道为什么被排除了,使用以下指令成功修复: net stop winnatnetsh interface ipv4 show excludedportrange protocol=tcpnet start winnatnetsh interface ipv4 show excludedportrange protocol=tcp 参考 (Windows)以一种访问权限不允许的方式做了一个访问套接字的尝试处理 Kestrel...
