分类 生活 下的文章 - 浮川的小窝
首页
休闲直播
4K壁纸
统计
更多
关于
留言
归档
搜 索
1
emby+alist3+cloudDriver2 emby无法播放网盘资源问题
163 阅读
2
HelloWorld!
154 阅读
3
前端算法整理
146 阅读
4
关于服务器配置反代隐藏端口中遇到的问题
141 阅读
5
maptalks 一些基础api的再封装(待解耦改装纯方法类)
121 阅读
生活
学习
随笔
吐槽
小秘密
小故事
登录
/
注册
搜 索
SnowLove
累计撰写
69
篇文章
累计收到
5
条评论
首页
栏目
生活
学习
随笔
吐槽
小秘密
小故事
页面
休闲直播
4K壁纸
统计
关于
留言
归档
用户登录
登录
注册
找到
7
篇与
生活
相关的结果
2023-12-07
emby+alist3+cloudDriver2 emby无法播放网盘资源问题
这阵子捣鼓新服务器 没抽出手来搞这个emby 随手点开个视频就是下面这个吊样子 :@(愤怒) :@(愤怒) :@(愤怒) 血压瞬间拉满 对于强迫症的我 放到媒体库里的视频看不了?这不就跟家里藏着个金娇缺只能天天压着枪看着 那是不可能的 :@(深思) :@(深思) :@(深思) 今天终于整理好心情放下手头的活好好治治这个小浪蹄子 :@(皱眉)行动一不管三七二十一 先把emby的版本从4.7升级到4.8先 不排除低版本ffmpeg的版本无法解析视频的问题 然后就是一通百度google阿里云找资源 心路历程不必言表 最后还是回归到了矿神大大的套件 :@(吐血倒地) :@(吐血倒地) 现在版本升到最新了 屌错误依然涛声依旧 :@(无语)行动二因为我的nas上资源来源比较杂 有存储空间里的 有外置硬盘盒里的 还有各网盘里的 林林总总的资源多而杂 就想着用emby指定好媒体库进行统一管理 ps:想过用nastool进行资源整合 但是这样把资源放到本地 一是本地没有这么大的空间存储 二十白白浪费了网盘的空间资源 所以犹犹豫豫也就没有用nastool进行管理这次我不在随机查看视频 而是选了上述三个来源的视频个几个进行测试这次的测试让我发现了问题 嗯= =一个很愚蠢的问题 :@(尴尬) 发现的过程是我本地的资源、外置硬盘盒视频都可以正常播放 但是唯独网盘播放不了 于是到浏览器控制台查看接口报错 好嘛 视频播放接口一直在报错 原因是找不到文件地址 此时我就纳闷了 前阵子还刮过屑 怎么这阵子突然就不好用了?是不是cloudDriver挂载掉了?或者alist token过期了?行动三有了目标就好处理 我先后打开了cloudDriver和alist alist各云盘工作正常 但是cloudDriver挂载居然掉了??我踏马 :@(吐血倒地) 我怎么就不先去网盘挂载点看看资源还能不能读取 于是乎重新挂上 再去filestation里看 嗯??怎么文件还是没有 然后我又回去排查 挂载没问题 但是挂载路径不对啊 我挂到了另一个盘上 地址不对之前视频是怎么刮得屑? :@(吐血倒地) 一通操作改完了 顺便还去检查了下各盘符文件夹权限问题 都已经配置 回到emby 妈蛋这就好使了= = 总结来说 这个问题是cloudDriver掉挂载的问题 但是不知道为啥 挂载路径会突然变成另一个(难道是因为浏览器自动填写的问题?我当时挂的时候也没在意) 总之 遇到emby不能播放视频 首先检查一下1权限是否给到 2网盘 token是否正常 3 alist clouddriver挂载是否正常 4 最后一步再去看解码问题 一般你配置好了解码 除非一些很奇葩的格式没法解码 正常常见格式是没有问题的
2023年12月07日
163
0
0
2023-12-01
关于服务器配置反代隐藏端口中遇到的问题
最近双十一,本人一直在关注着便宜的vps想捡个漏 :@(高兴) 没成想还真让我找到了 这里不是广告啊 人家也没给我推荐费 是我同事推荐给我的 我是用了这是第三天了 感觉还不错 挺稳定的 咱不追求时延啊 上传下载峰值是不是稳定啊 cpu性能是不是虚标啊(还没到那一步) 就是想把群晖这个该死的带端口访问这个难为了强迫症患者的我3年的心头之痛给解决掉 于是乎 图省事直接装的宝塔 一顿nginx配置 算是把各个项目能访问到了 :@(赞一个) :@(赞一个) :@(赞一个) 这仅仅是第一步 我就感觉没这么轻松就解决掉的 今天我又挨个服务去测试了一下 果然 新的风暴又出现了(我他妈真想停滞不前 :@(吐血倒地) ) webstation起的项目比方说 typecho 首当其冲网站是可以访问的 资源加载都好注意要修改这里的配置 think: 不设置这 php读取的地址有部分静态资源(应该不是缓存问题)还是会访问你群晖的域名+typecho端口 这样就会报跨域问题 think: 同时需要注意下你用的主题是否存在静态资源的指定地址 我是markdown中的表情和部分> 功能没法使用 expression.json资源请求cros问题 (ps:我是因为之前Joe大神发布> 的1.2的版本里 Joe大自己封装的markdown编辑器需要访问cdn资源,但是这个cdn资源> 很薛定谔,时灵时不灵,所以干脆直接就下下来放到我的群晖上,速度快还方便,这里是我> 疏忽了,忘了资源是我自己的了 :@(喷血) ) 这样typecho问题得到了暂时的解决= =还不知道后续会不会出现问题接下来是 chevereto V4这个小浪蹄子 (我特么真实无福消受啊 :@(愤怒) :@(愤怒))这个是不完全解决方案 能力有限 可能要涉及改php代码 但是我是真看不懂chevereto代码 太沉了 不说了说多了都是泪说一下我的方法 去到chevereto V4的根目录 找到这个文件放开图中所示的三行代码 think: CORS header (avoids font rendering issues) 这注释写的很明白 避免字体渲染问题 需要配置上二级域名和webstation的项目地址 > > 这样就可以指定二级域名跨域了(我是没写正则 直接写死的 如> 果有别的多二级域名的> > 需> 求建议自己写正则来匹配) think: woff2不再报错但是相应的点击网站的按钮 登录或者探索等 还是会跳到群晖的webstation的项目地址 就很烦 think: 这种方法也不行= =整不会 等之后我细看看代码逻辑看能不能改一改 求php大神救命!接下来是群晖的 Synology Photos相应的note file video 设置了别名的门户d都可以这么设置这个牵扯到反代服务器的nginx设置 我一并贴出来 # http(80) -> https(443/ssl) server { listen 80; server_name *.snowlove.top; rewrite ^(.*)$ https://$host$request_uri; } # 单独配置图床服务器 server{ listen 443 ssl; server_name image.snowlove.top; gzip_static on; ssl_certificate #填写你的ssl cer; ssl_certificate_key #填写你的ssl key; # 配置websocket proxy_connect_timeout 4s; proxy_read_timeout 60s; #如果没效,可以考虑这个时间配置长一点 proxy_send_timeout 12s; #升级http1.1到 websocket协议 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; location / { proxy_pass #chevereto地址; } server{ listen 443 ssl; server_name *.snowlove.top; gzip_static on; ssl_certificate #填写你的ssl cer; ssl_certificate_key #填写你的ssl key; # 配置websocket proxy_connect_timeout 4s; proxy_read_timeout 60s; #如果没效,可以考虑这个时间配置长一点 proxy_send_timeout 12s; #升级http1.1到 websocket协议 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; #以上三行,目的是将代理服务器收到的用户的信息传到真实服务器上 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #正则表达式 配置二级域名反代 if ($http_host ~* "^(.*?)\.snowlove\.top$") { set $domain $1; #设置变量 } location / { # photo if ($domain ~* "photo") { # 此处进行重写地址 rewrite ^/(.*)$ /photo/$1 break; proxy_pass #群晖地址:5001; } # ... more proxy_pass #群晖地址:404; } } think: 目前测试上传正常 图片正常今天忙忙活活一天就弄了这几个破问题 属实是脑袋瓜子嗡嗡的 剩下的应用明天继续测试 可能还会遇到更新的风暴 :@(尴尬) :@(尴尬) :@(尴尬) 想想就觉着难受= =之后的测试会陆续补上今天就到这叭 下班回家!!!续:2023-12-03 19:52:53 星期日我又来了同志们 :@(脸红) :@(脸红) :@(脸红) 继周五脑瓜子嗡嗡了一天 周天我的脑袋强烈要求我不要停 加大力度! :@(中指) :@(中指) :@(中指)接下来是 codepen这次的项目是github上找到的一个还是比较实用的运行片段代码的项目 通过简单的访问就发现了一个问题 里面的js css网络通但是返回内容都是index.html内容对于我这个nginx新手 我的理解很简单 proxy_pass https://服务器域名; 配置了转发了就完事了 但是好像情况并不如此盲目没有目的的瘦了一圈无果 我就又看了看js的返回内容 想到了 是不是在群晖docker中起的nginx配置有问题没错 没用webstation起 直接down的项目build了一下 放在了一个nginx中 打算的是把这种编译后的项目统一用一个nginx管理起来 location /codepen/ { add_header Access-Control-Allow-Origin *; autoindex on; root /etc/nginx/html; # 前端代码dist文件所在磁盘目录位置 index index.html index.htm; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # index index.html index.html; # dist文件夹中的入口文件index.html try_files $uri $uri/ /codepen/index.html; } think: 是不是因为就因为没有找到js资源 走了try_files于是我尝尝试添加了一条 location ~* ^/codepen/(.*)$ { proxy_pass https://群晖地址:xxxx/codepen/$1; break; }问题解决 :@(赞一个)
2023年12月01日
141
0
0
2023-11-15
fetch封装
/** * @Author : Xiao Xiang Lun * @Date : 2023-11-15 15:57:06 * @LastEditors : snowlove xiaoxl@botech.com.cn * @LastEditTime : 2023-11-15 16:31:45 * @FilePath : /react/demo/src/views/DemoStoreTwo/fetchReq.js * @Environment : mac node v16.3.0 * @Description : * @关注作者请访问 https://snowlove.synology.me:5 * @备用地址:https://nas.snowlove.top:5 */ /* http([config]) + url 请求地址 + method 请求方式 *GET/DELETE/HEAD/OPTIONS/POST/PUT/PATCH + credentials 携带资源凭证 *include/same-origin/omit + headers:null 自定义的请求头信息「格式必须是纯粹对象」 + body:null 请求主体信息「只针对于POST系列请求,根据当前服务器要求,如果用户传递的是一个纯粹对象,我们需要把其变为urlencoded格式字符串(设定请求头中的Content-Type)...」 + params:null 设定问号传参信息「格式必须是纯粹对象,我们在内部把其拼接到url的末尾」 + responseType 预设服务器返回结果的读取方式 *json/text/arrayBuffer/blob + signal 中断请求的信号 ----- */ // import qs from 'https://cdn.bootcdn.net/ajax/libs/qs/6.11.2/qs.min.js'; const class2type = , toString = class2type.toString, hasOwn = class2type.hasOwnProperty, isPlainObject = function isPlainObject(obj) { let proto, Ctor; if (!obj || toString.call(obj) !== "[object Object]") return false; proto = Object.getPrototypeOf(obj); if (!proto) return true; Ctor = hasOwn.call(proto, "constructor") && proto.constructor; return typeof Ctor === "function" && Ctor === Object; }, qsStringify = function qsStringify(obj) { const params = []; for (const key in obj) { if (obj.hasOwnProperty(key)) { const value = obj[key]; const encodedKey = encodeURIComponent(key); const encodedValue = encodeURIComponent(value); params.push(`$=$`); } } return params.join('&'); } /* 核心方法 */ const http = function http(config) { if (!isPlainObject(config)) config = ; const controller = new AbortController(); config = Object.assign({ url: '', method: 'GET', credentials: 'include', headers: null, body: null, params: null, responseType: 'json', signal: (controller && controller.signal) || null, }, config); if(config.abort || config.abort instanceof Promise) { config.abort().then((_)=>controller.abort()) } if (!config.url) throw new TypeError('url must be required'); if (!isPlainObject(config.headers)) config.headers = ; if (config.params !== null && !isPlainObject(config.params)) config.params = null; let = config; // 处理问号传参 if (params) { url += `$$`; } // 处理请求主体信息:按照我们后台要求,如果传递的是一个普通对象,我们要把其设置为urlencoded格式「设置请求头」? if (isPlainObject(body)) { body = qsStringify(body); headers['Content-Type'] = 'application/x-www-form-urlencoded'; } // 发送请求 method = method.toUpperCase(); config = { method, credentials, headers, cache: 'no-cache', signal }; if (/^(POST|PUT|PATCH)$/i.test(method) && body) config.body = body; return fetch(url, config) .then(response => { let = response; if (/^(2|3)\d$/.test(status)) { // 请求成功:根据预设的方式,获取需要的值 let result; switch (responseType.toLowerCase()) { case 'text': result = response.text(); break; case 'arraybuffer': result = response.arrayBuffer(); break; case 'blob': result = response.blob(); break; default: result = response.json(); } return result; } // 请求失败:HTTP状态码失败 return Promise.reject({ code: -100, status, statusText }); }) .catch(reason => { return Promise.reject(reason); //统一处理完提示后,在组件中获取到的依然还是失败 }); }; /* 快捷方法 */ ["GET", "HEAD", "DELETE", "OPTIONS"].forEach(item => { http[item.toLowerCase()] = function (url, config) { if (!isPlainObject(config)) config = ; config['url'] = url; config['method'] = item; return http(config); }; }); ["POST", "PUT", "PATCH"].forEach(item => { http[item.toLowerCase()] = function (url, body, config) { if (!isPlainObject(config)) config = ; config['url'] = url; config['method'] = item; config['body'] = body; return http(config); }; }); export default http;调用方法 如需中断链接 传入abort回调 在其中重写逻辑 注意返回一个promisehttp.get(' https://snowlove.synology.me:6002/mock/6553259ddb7e05001d99be09/example/query',{ abort:()=>new Promise((reslove)=>{ console.log("abort1") reslove(true) }) }).then(res=>{ console.log(res) }).catch(err=>{ console.log("捕捉主动终止错误") }) http.get(' https://snowlove.synology.me:6002/mock/6553259ddb7e05001d99be09/example/query',{ abort:()=>new Promise((reslove)=>{ console.log("abort2") setTimeout(() => { reslove(true) }, 1000); }) }).then(res=>{ console.log(res) }).catch(err=>{ console.log("捕捉错误2") }) /** * abort1 * abort2 * 捕捉错误 */
2023年11月15日
19
0
0
2023-09-15
《酷冷至尊 凛冬仙人》
对于沙雕的N5105这个工控机我也不说啥了 那控温 那设计 业界鼎流了属实是 cpu都跑不满50%那温度噌噌的往上跳 看得我脑子疼 :@(吐血倒地) :@(吐血倒地) :@(吐血倒地) 温度一上去虚拟机直接假死 只能重启机器 问了解决这个问题 我直接拼多多买了一堆风扇 另加了一个温控的集成小板 温度上去自动调节风扇转速 虽然说温度检测不是很准但是主要是不需要准确的温度 只是单纯的控制小盒子温度不要上去 效果还不错 这四个"静音"大风扇可是呼呼的吹 声音还算在接受范围内 银锭跑了4天了也没死机 终于拜托了一天重启一次的命运 :@(赞一个) :@(赞一个)
2023年09月15日
14
0
0
2023-05-15
收下吧,这是我最后的波纹了!
[typing]这一坨家当子 少说攥了要个小半年了 前前后后的捣鼓来捣鼓去 现在是终于稳定下来了 路由也不会经常性断流了 网速也正常了不在是要死不死的20几兆了 说实话有个这个还是很好的 平常备份个数据代码啥的也不怕没了 一键回家 集办公娱乐学习于一体 (我可没在打广告 里面能看着牌子的也就华硕那个大logo)[/typing] love and peace~
2023年05月15日
17
0
0
1
2