自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Andy Tools

闻道有先后,术业有专攻,达者为师

  • 博客(203)
  • 资源 (1)
  • 收藏
  • 关注

原创 浏览器去广告(Adblock Plus离线安装)

如何干掉恶心百度联盟(推广)广告: 这里隆重推荐Adblock Plus。 最近实在受不了百度搜索结果里面广告,还有各大网站内嵌的智障广告(CSDN)1 chrome中安装adb lockPlus2 离线安装2.1 下载crx文件2.2 打开chrome 在地址栏输入chrome://extensions/3 下载Adblock Plus开发版本安装浏览器:ch...

2018-07-17 19:09:39 60698 15

原创 浏览器计算文件md5

相关API连接:HTML InputFile标签在web应用程序中使用文件FileReader使用spark-md5 浏览器使用的md5计算包​演示代码: 按住ctrl 多选, 控制台输出对应计算结果<!DOCTYPE html><html><head><script src="https://cdn.bootcdn.net/ajax/libs/spark-md5/3.0.2/spark-md5.js" ></script>&

2022-02-16 19:55:59 1211

原创 AWS S3 数据完整性校验

近期在处理OTA升级包数据完整性这个问题 引发了一系列的review。如何保证服务器上传到S3 S3收到的升级文件是完整的,如何保证设备获取到的升级文件是完整。这里其实就涉及到两个问题:1 在上传文件到S3如何确定上传过程数据不被损坏2 如何把保证下载过程数据如何不被损坏​这里S3果然有进行考虑:https://aws.amazon.com/cn/premiumsupport/knowledge-center/data-integrity-s3/​1 关于S3 ETag实体标签(ETag)代表

2022-02-16 09:59:38 3401

原创 AWS STS在region ap-east-1支持问题

原来一直没有用过香港区域STS 来签发临时授权令牌。然后近期开启了香港区域ap-east-1 然后进行测试发现通过STS签发的凭着获取S3中的文件抛出:The provided token is malformed or otherwise invalid真的是相当的令人困惑。然后在东京区域 ap-northeast-1 建立了同样的存储桶,然后同样的代码去获取文件,就可以获取成功,让人不禁怀疑香港区域有点特殊。​最后知道翻到了 https://docs.aws.amazon.com/IAM/lat

2021-09-09 17:06:59 4000

原创 mongodb4.4 windows环境安装

安装社区版本:Mongodb 4.4windows版本: win101 windows 安装mongodbMongodb 下载地址: https://www.mongodb.com/try/download/communitywindwos直接下载,在安装界面配置数据目录和log目录,然后下一步即可。我们可以不安装MongoDB Compass.安装完成后mongodb应该就已经在后台运行了。测试访问mongodb默认端口(localhost:27017),出现以下界面说明mongodb已经安.

2021-02-24 20:15:29 1118

原创 database-关系数据库与noSql数据库选型分析

近期因为一些私有化部署的需求需要切换一下方案底层数据库,评估一下数据库选型并需要整理一份文档,这里借此机会也整理一下这部分内容。本文档是个人一些浅见和基于极客时间的两门课程整理(Mysql实战45讲和从零开始学架构)1 关系数据库常见的以Mysql和Postgresql为代表优点:强大的 SQL 功能和 ACID 的属性一个用户请求要么成功、要么失败,不能处于中间状态(Atomic)一旦一个事务完成,将来的所有事务都必须基于这个完成后的状态(Consistent)未完成的事务不会互相影响(

2021-02-10 14:02:56 486 1

原创 Nginx 配置文件nginx.conf拆分

本文环境:ubuntu 18.04 阿里云当nginx 反向代理的内容越来越多的时候,如果仅仅使用nginx.conf来配置会导致比较难管理。所以希望按照子域名规则来划分application。然后将application的规则配置到/etc/nginx/conf.d/下面去。目前希望针对不同子域名进行拆分。比如有以下两个子域名的反向代理需要拆分。rtc.sample.top -> port 4056account.sample.top -> port 40571 环境准备本节主

2021-01-28 13:31:25 2618 1

原创 Linux 自启动服务配置

最近想把nodejs 的服务器作为服务随linux启动而启动。发现对这部分理解并不是非常清晰,这里重新整理学习一下这部分内容。1 服务的概念在Linux中,服务是在后台运行的程序。服务可以按需启动,也可以在启动时启动。如果您使用Linux作为主要操作系统或开发平台,那么您将处理不同的服务,例如webserver,ssh或cron。在调试系统问题时,了解如何列出正在运行的服务或检查服务状态非常重要。最近的大多数Linux发行版都使用systemd作为默认的初始化系统和服务管理器。Systemd是一套

2021-01-22 13:38:21 795

原创 AWS Cloud Watch及Lambda 执行定时任务

1 背景目前有一个报表功能,希望能定时扫描统计Dynamodb 数据库并在月初生成上月统计分析数据并填入统计结果表中。所以看能不能写一个定时任务来处理。但分析了一下场景,实际上和web应用服务器并没有关系且不希望统计功能占用到应用服务器资源影响运行。利用cloudwatch 来实现定时任务的触发。利用Lambda函数实现读取数据库,统计整理数据,并回写数据的功能。这里好处是就完成应用web服务器直接查询统计结果数据即可,不用参与较高复杂度的统计分析回写操作。而利用cloudwatch和

2020-12-10 16:18:45 3846

原创 Ant Design Pro 使用proxy无法设置cookies

Ant Design Pro 使用proxy无法设置cookies近期使用ant design Pro 实现了一个内部的后台。用于提供一个简单界面访问一些用户和设备的数据。但近期需要将系统交接给其他同事继续开发。想要在本地配置proxy连接后端服务器。1 关于AntD Pro配置代理1.1 关于为什么要配置代理AntD Pro 是前后端分离的前端框架,在部署时,一般会将前端代码打包和后端代码部署同一个域名下,所以不会有跨域的场景。比如使用nginx 部署· location / {

2020-11-23 13:38:05 2671 1

原创 nodejs使用crypto进行对称加密

1 简介Nodejs 加解密模块主要由Crypto模块提供,Crypto模块由 C/C++ 实现算法后,暴露为 javascript 接口的模块,包含对 OpenSSL 的哈希、HMAC、加密、解密、签名、以及验证功能的一整套封装。关于对称加密:采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密对称加密主要由Cipher 提供:Cipher该类的实例用于加密数据。关于支持的算法:最近的OpenSSL发布,openssl list-cipher-algorit

2020-11-19 11:37:35 3381

原创 Javascript 实现Sleep效果

在C++ 和linux 中经常使用sleep 来实现一个程序的延时,而在JavaScript中只有setTimeOut这种非阻塞方式,如果要实现一种类似阻塞的方式可以使用async/await 配合settimeout来实现。可以用于一些测试场景async function run(){ console.log('--------------'); await sleep(2); console.log('--------------'); await sleep(5); conso

2020-11-17 10:42:16 770

原创 身份证校验码计算

身份证校验码计算最近看一份文档看到身份证规则,觉得很有趣,这里记录一下如何计算校验码1 身份证编码规则《中华人民共和国国家标准GB 11643-1999》中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码 (编码对象常住户口所在县(市、旗、区)的行政区划代码,按 GB/T 2260的规定执行),八位数字出生日期码(表示编码对象出生的年、月、日,按GB/T 7408的规定执行。年、月、日代码之间不用分隔符)顺序码

2020-11-12 17:51:01 7559

原创 Minio 搭建对象存储服务

文章目录1 mino简介2 环境3 部署3.1 获取程序3.2 存储类别3.3 挂载硬盘3.4 单机部署3.4.1 部署及测试3.4.2 作为Linux Service启动3.5 分布式集群扩容方案3.5.1 部署及测试3.5.2 作为Linux Service启动3.6 多机部署,扩容支持4 客户端及演示5 Prometheus+Grafana 搭建监控系统监控minio集群5.1 搭建Prometheus 收集minio集群数据5.2 使用Grafana 优化监控界面6 参考1 mino简介Mi

2020-08-04 15:19:58 7553

原创 Linux 普通用户bind 80端口

文章目录1 使用nginx 做反向代理2 Linux能力-CAP_NET_BIND_SERVICE2.1 Linux 能力概念2.2 测试及赋予能力linux对于非root权限用户不能使用1024以下的端口,那普通用户该如何将应用服务通过80端口对外提供服务呢1 使用nginx 做反向代理常规操作,一般应用服务器不会直接暴露在公网,而是使用nginx 做方向代理,将访问服务器80端的请求转发到具体应用服务器的监听的端口server { listen 80; server_name

2020-08-04 15:02:19 2397

原创 Markdown编写工具及图床方案

经常在个人编写blog 使用markdown语法,但最近使用语雀编写文档时发现用语雀客户端编写的markdow 生成的图片外链 无法在其他网站使用。基于这种情况是时候考虑一下如何在本地编写markdown。在知乎上找了一圈发现很多人推荐:typora 编写markdownpicgo作为图床处理markdown中图片picgo使用七牛云作为服务商。注意这里长期使用需要有一个备案域名1 下载typorahttps://www.typora.io/很简单就可以下载安装2 申请七牛云并配置picgo七牛

2020-07-18 21:11:15 799

原创 使用Nextcloud在AWS搭建云存储

环境: ubuntu 18.04国内区确定是否已备案拥有80/443 端口相应EC2 安全组已开放对应端口如果仅仅是自用推荐使用第二种snap方式1 使用dockers安装nextcloud1.1 安装及启动ubuntu安装dockers脚本curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun拉取nextcloud dockers镜像docker pull nextcloud启动nextcloud容器d

2020-07-18 11:42:55 1260

原创 使用crow E-R图描述数据库关系

在设计数据库模型时,使用E-R图的方式可以帮我们理清各数据库实体信息及实体与实体之间的关系。本文描述的为:E-R Crow画法绘图工具: draw.io 离线版文章目录1 E-R图2 E-R图说明2.1 属性2.2 关系2.3 实体3 图例及参考3.1 crow方法图列3.2 示例4 参考1 E-R图实体关系图(ERD)或ER模型代表任何系统中的数据。您可以使用它们来说明业务流程中数据的结构,或详细说明关系数据库中数据的存储方式。ER图不一定显示数据的处理方式或经过的确切过程,而是数据实体的结构和

2020-07-07 18:13:22 8831

原创 算法评估标准:时间复杂度与空间复杂度

1 概念最近开始随便看看leetcode,发现自己对时间复杂度和空间复杂度没有一个清晰地认识。就去看了看程序员小灰写的算法之旅。这里写篇博客记录一下这部分的知识方便以后查阅。先说说什么是算法:在计算机领域里,算法是一系列程序指令,用于处理特定 的运算和逻辑问题。 衡量算法优劣的主要标准是时间复杂度和空间复杂度。而是什么是时间复杂度和空间复杂度呢?**时间复杂度:时间复杂度是对一个算法运行时间长短的量度。**用大O表 示,记作T(n)=O(f(n))。常见的时间复杂度按照从低到高的顺序,包括O(1)、

2020-06-18 20:29:14 1644

原创 AWS STS 临时授权方案

官方文档:https://docs.amazonaws.cn/IAM/latest/UserGuide/id_credentials_temp_request.html描述一下这篇文章的背景:1 背景使用cognito 控制app接入:APP 通过cognito服务的开发者授权验证方式接入到的cognito服务身份池。通过userid 作为开发人员标识换到cognito indentity pool 的唯一标识 indentityid。 而每一个通过验证的用户都可以用身份映射到一个AWS IAM

2020-06-16 16:38:34 5173

原创 阿里云资源编排(ROS)Sample

原来用过AWS cloudFormation 服务感觉用于帮客户搭建环境很好用。近期需要客户创建一个阿里云OSS 桶资源,并给一个对应用户mobile APP访问的RAM角色和一个用于server访问的子账号。 文档写了5小节,整个过程比较繁琐,如果需要客户手动操作可能会造成一些困扰。所以这里就看了下和AWS cloudFormation对应的阿里云 资源编排服务(ROS)。此文档记录一些Sample方便以后接着填这种坑。 阿里云的文档写的还是不错的:模板的基本语法: https://help.aliyun

2020-05-28 19:49:40 811

原创 JavaScript forEach与async/await

近来发现平时使用JavaScript 数组Array.forEach上存在误区。这里描述一下使用场景:简单来说就想对数组进行遍历,遍历中依次进行串行查询。具体到场景就是:对数据库数据进行读取得到一组用户id。然后又分别对该组用户id进行遍历 对每一个用户id进一步查询数据库得到结果。这里使用才发下在forEach语句里面使用await 想要阻塞住forEach循环让循环通过await实现串行效果何其愚蠢。1 问题背景这里用一段代码来描述forEach语法的误用:const userMap = new

2020-05-27 19:23:17 2887 1

原创 JavaScript 格式化显示JSON

先说结论,使用JSON.stringify方法 第三个参数参数格式化显示,使用标签保留空格和换行符:JavaScript:const jsonString = JSON.stringify(testjson, null, '\t');Html:<pre> jsonString <pre># 1 过程近期需要手搓一个界面,通过restfulAPI拿到一个j...

2020-04-22 18:15:06 2392 1

原创 windows 环境下 ts报错 error TS1005: ';' expected.

环境:vscode 3.4.3ts 3.8.3tsc 1.0.3.0function sayHello(person: string) { return 'Hello, ' + person;}let user = 'Tom'console.log(sayHello(user));hello.tstsc hello.ts报错E:\source\develop\type...

2020-04-13 19:59:23 18499

原创 nodejs 处理文件上传(express)

在实际开发功能中,经常会有涉及到文件上传的需求。这里简单记录一下文件上传处理的sample。具体场景还需要进一步开发。文章目录1 使用binary方式上传2 Chunked方式上传3 x-www-urlencoded 对值进行base64编码上传文件4 表单上传5 断点续传(分块并发上传)/大文件处理6 示例代码服务端:使用express框架处理文件上传Client:使用POSTMAN进行文件...

2020-02-28 17:50:30 3158

原创 handless浏览器对webrtc压力测试

如何对webrtc转发服务器进行压力测试是一个很有意思的问题。因为webrtc客户端实际上使用的造成压力主要是码流而传统的HTTP并发请求。最近主管对自建webrtc服务器性能产生了疑问,于是准备1000路webrtc连接下压力情况。这里分享进行压测的思路及方式和一些可以说的结论。这是自己想的方案,如果大佬有更合理方案请不吝赐教。测试环境:AWSwebrtc压测主要涉及到一下两个问题:1 压力...

2020-02-17 11:02:36 3626 3

原创 webrtc基础概念与连接流程

今天在学习AWS KVS(Kinesis Video Streams)服务时发现它对webrtc有一篇说明解释的很好,这里摘录并整理一份以供向它人介绍webrtc工作流程。文章目录1 webrtc术语Signaling channel(信令通道)Peer(对等节点)Session Traversal Utilities for NAT (STUN)Traversal Using Relays a...

2020-01-16 09:47:52 2237

原创 视频分辨率别称

经常提到硬件或者驱动的同事说我们的IC支持HD ,FHD 之类的。他们提供的配置文件里面也有直接填这些参数,比如VGA HD。这里记录一下翻到视频分辨率的别称的内容:视频输出格式:VGA:640480HD:1280720 //HD一般指720p以上的分辨率,就是高清 High DefinitionFHD: 19201080 //是Full HD 全高清的分辨率定义在19201...

2020-01-02 19:27:03 1003 1

原创 Webrtc 强制终端只使用turn服务器(releay)

相信有很多小伙伴也会遇到和我一样的问题,怎么强制webrtc client 仅使用turn转发不使用p2p 和host。面临的场景是想要测试Turn服务器压测。但目前host p2p都能拿到,这两种情况则无法对turn服务器造成压力。Google资料获取到了两个关键信到的两个解决方案:https://stackoverflow.com/questions/27224008/webrtc-forc...

2019-12-30 11:47:28 3263 1

原创 AWS S3 监控请求数及流量

AWS S3 云存储 是按照存储容量,请求数,及网络流量三个维度进行收费。而如果涉及到使用S3 对外提供SaaS服务,成本分布及估算自然称为比较重要的需求。自然而言需要监控以上三个指标。先上官网说明性文档:https://docs.amazonaws.cn/AmazonS3/latest/dev/monitoring-overview.html文章目录1 监控指标2 Cloudwatch使用2...

2019-12-10 20:01:30 3703

原创 JavaScript 随机数产生

今天要执行一个定时任务,但又不希望所有定时任务均在同一个时刻触发。我大概想要下面这样的一个东西,希望定时任务在凌晨2点某一个分钟触发。 const min = Utils.getRandomInt(60); const time = `0 ${min} 02 * * *`;这里就需要一个获取随机数的方式:提供了三个函数 getRandomInt(max): 获取小于某个值的整...

2019-12-05 19:51:50 1021

原创 Linux 安装Mysql 8.0

环境: 阿里云Linux ubuntu 主机 前提:以前Mysql 卸载干净(5.7真难卸载,云主机直接重装了)一手资料官网文档 : https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/1 MySql 8.0 源码获取及安装https://dev.mysql.com/downloads/ mysql 社区版地址找到apt包的对...

2019-12-04 19:08:41 297

原创 Nodejs 后端解HTTP basic auth认证

项目中一般用oauth2 认证,今天想写一个demo就在POSTMAN中填了简单认证方式。嗯… 发现在express 还没有解过 尴尬了…今天写这篇blog把这个知识点加入到菜谱。文章目录1 Basic auth认证1.1 通用的 HTTP 认证框架1.2 基本验证方案(Basic auth)2 nodejs服务端中解Basic auth认证2.1 basic-auth模块2.2 自行解析1...

2019-11-29 18:14:47 4520

原创 AWS IOT 离线检测功能(MQTT 遗言)

本文环境基于AWSIOT 嵌入式C lib:https://github.com/aws/aws-iot-device-sdk-embedded-C环境:ubuntu语言 : C关于AWS IOT 基础操作可参见:https://blog.csdn.net/m0_37263637/article/details/80989986关于AWS IOT 嵌入式lib基础使用:https://blog...

2019-10-24 20:04:41 4071

原创 coturn 401 Unauthorized问题排查

文章目录1 背景2 stun与turn 服务测试3 ICE 收集测试[](https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/)4 标准文档中的流程5 结论1 背景今天在调试webrtc C++设备join webapp 建立的房间时,在交换ICE信息后,开始进行ICE打洞。发现C++ 收到401 ...

2019-10-11 10:14:45 6035 2

原创 Nodejs Buffer拼接

本文记录下最近遇到的buffer拼接问题。如果需要知道如何拼接 直接点击第二节文章目录1 背景2 buffer拼接3 buffer 截取1 背景最近有一个需求需要将缩略图和视频文件合并到一起用HTTP POST 发送给服务器,服务器解析后拆成缩略图和视频文件存储到云存储中。于是就写了下面这段代码读了读取两个文件,并相加。就实现下面这段代码。const fs = require('fs'...

2019-09-25 20:23:44 8750 1

原创 C语言 回调函数原理及实现

最近需要实现处理AWSIOT传来的消息回调函数。作为库编程,在老司机的指导下发现不能直接把AWS IOT的回调接口暴露到上层而是应该自己封装回调函数以供上层调用,这样可以更好地解耦合,上层即不需要了解下层的细节。这里就发现了原来对回调函数的使用还存在一定的误区,这里特地整理一篇文章以供查阅。实质上就是传入一个函数指针 内部去调用。 可以参考Linux内核callback调用方式。第一节主要展示什...

2019-08-30 18:32:38 3498 1

原创 C语言 MAP

最近需要在AWSIOT shadow添加设备状态,很明显JSON这种数据状态很明显每个状态都是Key-Value这种数据类型,很自然的想到使用MAP去实现这种状态。而代码又是跑在嵌入式设备中很明显是C语言,这里就带来一个问题,C语言原生是没有MAP实现的。作为生产环境使用,自己手搓轮子难免有考虑不周情况出现,这里就去github 摸代码,找个相对start高点,先测试一波。github 地址:h...

2019-08-23 13:55:17 7053 1

原创 C(Unix)匿名信号量

最近编写AWS IOT 部分代码,发送设备消息时会引入多线程就会引入资源竞争,比如多个线程同时想发送消息进而导致资源占用,即会导致一个线程获得资源,另一个线程则会进入等待状态。而如何等待则就是一个比较细节的内容。而在维基百科上有对忙碌等待描述:以进程反复检查一个条件是否为真为根本的技术。忙碌等待大部分情况很明显是应该避免的,所以两个线程竞争,一个线程获取到锁,另一个线程获取失败采用忙碌等待的方式...

2019-08-23 13:40:16 340

转载 Redis缓存与数据库一致性方案

今天和室友讨论关于redis缓存与数据库同步的问题,发现对这个问题没有清晰明了的认识,在网上找到Dustin_CDS的文章发现对各种情况都进行了讨论,转载以供以后学习查阅。本文转载自: https://blog.csdn.net/Dustin_CDS/article/details/79595297文章目录1 数据库和redis分别处理不同的数据类型2 Cache-Aside模式2.1 读场景...

2019-08-01 13:38:35 341

LFW人脸集合(部分)

LFW人脸库一部分,含1400多个人物,每个任务均含有可用于测试人脸对比和基本人脸识别服务。可以用于简单测试

2018-08-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除