乱码三千 – 分享实用IT技术

乱码三千 – 码出一个新世界


  • 首页

  • 归档

  • 搜索

关于群晖NAS使用DownloadStation下载直播流的问题以及缓存目录挂载

发表于 2024-04-12

前言

最近有群晖NSA下载直播流的需求 在使用DownloadStation套件的时候遇到一些坑 在这里做个记录

关于流的下载

首先 我需要下载的流地址的格式为:http://xxxx.flv

如果我使用常规添加链接地址的方式进行下载 就容易出现处于一直读取保存状态:

image-20240412083406987

这种状态下我们无法关闭应用 只能在套件中心停用该应用才能解决 否则后台会持续地从网络拉取数据:

image-20240412084021153

问题出在于 该地址输入框更适合填入种子的下载链接而不是视频或者流本身的 虽然这样也能变相地下载视频 但是极度不推荐 很多新手在使用的时候一不注意就掉了坑 我就是其中一个😂

正确的使用方式是将视频或者流地址填入搜索框然后回车:

image-20240412085002263

image-20240412085055724

此时视频就能正常下载了

可接下来新的问题又出现了 下载过程中无法在下载目录看到当前下载的文件 只有当视频下载完成或者手动终止该下载任务后才能看到

很明显Download Station有个下载缓存目录 但是这个缓存目录我们在File Station中看不到 只能通过ssh在终端查看

由于我下载的是直播流视频 为了保证视频的完整性 我不能中断视频的下载 在这种情况下 如果要实时查看并当前下载的内容 方便随时播放 那么我需要将隐藏的缓存目录给显示到File Station中

这里 我们需要使用目录的挂载功能

缓存目录的挂载

Download Station默认的缓存目录是/volume/@download 如果我们要将其挂载到指定的目录比如homes/download_cache 那么需要先在File Station中手动创建该文件夹

注意: 这里不建议使用终端命令进行创建 因为很容易创建隐藏文件

接下来 按照以下步骤进行缓存目录的挂载

  1. 首先在电脑上打开我们的终端窗口 使用ssh连接我们的群晖NAS:

    1
    ssh 你的群晖登录用户名@群晖ip -p22

    回车输入登录密码 即可进入到我们的NAS

  2. 然后使用mount指令将隐藏的缓存目录@download挂载到download_cache 如下:

    1
    sudo mount --bind /volume/@download /volume/home/download_cache
  3. 挂载完毕后 我们会在File Station中找到该目录 并查看到当前正在下载的视频

    image-20240412094619148

    image-20240412094719618

种子缓存目录

上面我们提到 在种子链接输入框填入视频或流的下载地址 也可下载视频 但是这种方式是不推荐的

如果你不小心误操作了 或者也想体验一把 那么坑定也想知道这种方式下载的视频缓存目录在到底在哪个位置

这里 我已经给大家提前探查明白了 这个种子的缓存目录就在volume/@tmp下的btdl文件夹中

如果你想查看这里面存放的数据首先需要修改以下目录权限:

1
sudo chomd 777 volume/@tmp/btdl

然后我们进入该目录会发现一个upload开头的文件 这个文件就是视频或种子文件:

image-20240412103745114

如果是视频文件 那么我们只需要将其拷贝出来修改一下文件后缀名就行

同样的 为了方便在File Station中查看并编辑该文件 我将这个种子缓存目录挂载到home中

操作步骤和上面的大同小异:

  1. 在Flie Station中手动创建一个目录 用于种子缓存目录的映射 我这里将其命名为temp

  2. 使用mount指令将目录进行挂载

    1
    sudo mount --bind /volume/@tmp /volume/home/temp
  3. 挂载完后 我们就能在File Station中找到该目录以及对应的文件

    image-20240412103447862

    由于我个文件是个flv的视频 所以我将其后缀改为.flv

需要注意的是:

假如你的群晖NAS设有多个存储空间 你若把Download Station套件安装到了volume1中 但是下载目录却指定在了volume2下

那么 种子缓存目录需要在套件安装磁盘中也就是volume1里面找 @tmp 目录跟随的是套件

而下载缓存目录则是和下载目录同一个磁盘也就是volume2里面找 @download跟随的是下载目录

关于Download Station使用感受

总体还是比较满意的 下载的稳定性不错

大部分下载软件都不支持流的断点续传 然而Download Station却能做到这一点 值得一赞

本文为作者原创 转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

使用Wireshark对网络进行抓包

发表于 2024-04-11

软件介绍

Wireshark是一款非常强大的跨平台抓包工具 支持Mac和Windows平台

image-20240411201058820

image-20240411201029770

软件下载

点击进入官网

软件配置

这里以Mac平台结合谷歌浏览器为例进行配置

  1. 进入谷歌浏览器设置页 选择启动时打开新的标签页

    image-20240411184036016

  2. 创建keylog.txt用于存储ssl密钥 方便https抓包

    1
    2
    cd /Users/xxx
    touch keylog.txt

    注意:keylog.txt的存放位置由你自己决定 这里我存放到Users目录下

  3. 执行以下指令启动谷歌浏览器

    1
    sudo /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --ssl-key-log-file=/Users/xxx/keylog.txt

    --ssl-key-log-file : 表示将ssl密钥输出到指定文件中

    注意:

    1. 由于我将keylog.txt文件放在了用户目录下 所以指令执行必须加sudo表示以管理者的身份运行

    2. 如果你的谷歌浏览器并未安装在Applications目录下 可以利用以下指令来获取Chrome应用的路径

      1
      sudo find / -iname "Google Chrome"

      image-20240411185614773

  4. 在新打开的浏览器中输入你需要进行https抓包的网址 并回车

    这里我以百度官网https://baidu.com为例

  5. 此时我们会发现keylog.txt文件中已经有了相应的日志信息

    image-20240411185017352

  6. 启动Wireshark 选择需要监控的网卡

    image-20240411200537770

  7. 并配置TLS 关联keylog文件

    image-20240411185810657

    image-20240411185830566

    image-20240411190033618

至此 软件配置完毕 接下来开始抓包测试

抓包测试

  1. 打开百度网页 然后按F12进入Chrome开发者工具 获取百度的实际ip地址 用于过滤使用

    image-20240411190618555

  2. 在Wireshark 过滤栏中输入ip.dst==36.155.132.76 and http对该ip进行过滤

软件详细使用

利用好过滤

Wireshark的快速上手的技巧那就是使用过滤

想要在大量的数据中获取到自己想要的数据 那就必须利用好过滤关键字

我们进行网络抓包时大部分都是抓取http/https请求 因此我们只需在过滤栏中输入http关键字:

image-20240411195505450

当我们在过滤栏进行输入时Wireshark会有自动补全提示 当过滤栏背景为绿色表示软件能识别并根据该关键字进行数据过滤 如果背景色为红色 那表明无法根据该关键字进行过滤:

image-20240411195710102

过滤json数据

通常我们可能会抓取一下应用的api 返回的数据基本都是json格式 此时我们可以在过滤栏输入http and json关键字

image-20240411195944621

过滤图片

如果要过滤图片 可以使用http.content_type 比如:

1
http.content_type =="image/png"

不过为了更好地过滤出数据 我推荐大家使用contains的形式而不是== 这样容错率能大幅提升

1
http.content_type contains "image"

image-20240411224905514

过滤音视频

如果是amr格式的音频可以在过滤栏输入http and amr关键字

如果是MP4格式视频可以在过滤栏输入http and mp4关键字

如果是直播流 可以尝试输入rtp关键字

当然我们还可以通过模糊过滤的方式 比如:

1
http.content_type contains "video"

和

1
http.content_type contains "audio"

image-20240411225240083

根据ip地址过滤

这里需要注意的是 一个完整的数据交互是包括请求和响应两部分的

如果我们需要抓请求的部分 那么使用dst关键字:

1
ip.dst==服务器ip地址

如果我们需要抓响应的的部分 那么使用src关键字 也就是来源于对方 向我们发送数据:

1
ip.src==服务器ip地址

如果请求和响应两个部分都想抓取 那就用addr关键字:

1
ip.addr==服务器ip地址

也就是说无论是Suorce还是Destination只要包含该ip的都会过滤出来

根据请求方法过滤

如果我们要指定过滤GET或者POST方法 那么可以使用以下关键字:

1
http.request.method==GET

根据请求路径进行过滤

有时候同一个应用会使用不同的ip地址 尤其是某些直播应用 虽然每个视频ip可能会不同 但是地址路径是一样的 比如以live/xxx.flv结尾 那么我们就可以根据这个进行匹配过滤 如下:

1
http.request.uri contains "live"

根据排除法进行过滤

如果我们要排除某个ip的数据, 我们可以在关键字前面加上not或者! 如下:

1
!(ip.addr == 192.168.0.1)

根据内容长度进行过滤

如果我们要根据请求的内容进行过滤可以使用http.content_length 关键字 如下:

1
http.content_length <=30

根据正则进行匹配过滤

如果我们要使用正则匹配 可以使用matches关键字 如下:

1
http.request.uri matches "user"

注意: matches匹配不区分大小写

根据域名进行过滤

如果需要根据域名进行过滤 可以使用http.host关键字 如下:

1
http.host==baidu.com

或者

1
http.host contains "baidu"

如果要按照源地址和目标地址过滤 可以使用src www.baidu.com和dst www.baidu.com

根据cookie进行过滤

使用http.cookie关键字 如下:

1
http.cookie contains "userid"

根据端口号过滤

使用http.port关键字 如下:

1
http.port==80

根据http响应状态码过滤

可以使用http.response.code关键字 如下:

1
http.response.code==200

结合使用

以上所有的关键字 都可以使用与或非运算符进行结合使用 比如我想过滤一个http请求且请求响应为403的数据 过滤方式如下:

1
http and (http.response.code==403)

关于清除界面数据

当我们感觉数据过多 需要清理界面数据时 需要停止抓包 然后再点击开始抓包 这个时候软件会给予提示 是否需要将数据包进行保存到本地 我们只需要点不保存即可:

image-20240411200226017

或者直接点击重新抓包一步到位:

image-20240411212025725

Wireshark 的优势

  • 能抓取物理层到应用层七大层数据 这是其他诸如Charles、Fiddler抓包软件所不具备的

  • 监控网卡 所有数据无所遁形

  • 有些App禁止代理状态下使用 或者内部走的非代理流量 那么这种问题Wireshark可以轻松解决

总之 Wireshark和其它抓包软件结合使用 基本上能解决我们的抓包需求

本文为作者原创 转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

使用Proxyman抓取android应用数据请求

发表于 2024-04-11

软件介绍

Proxyman是一款跨平台的HTTP/HTTPS网络抓包工具 目前支持Windows、Linux、MacOS、IOS四大平台

image-20240411171337537

软件主界面如下:

image-20240411175955421

软件下载

点击进入官网

Android抓包

这里以网易的MUMU模拟器为例 给大介绍如果使用Proxyman抓取手机上的HTTP/HTTPS请求

第一步 打开proxyman获取代理服务地址和端口号

点击菜单栏Certificate-->Install Certificate on Android-->Physical Devices

image-20240411172928040

image-20240411173138799

第二步 在模拟器上配置网络代理

进入设置-->WLAN长按网络名称弹出对话框 这里我们点击修改网络:

image-20240411173440435

然后将服务地址和端口号填入并点击保存:

image-20240411173512415

第三步 下载SSL证书

证书用于抓取HTTPS请求

打开模拟器中的浏览器 输入地址http://proxy.man/ssl下载证书并安装

image-20240411174336396

第四步 测试能否正常抓包

在手机浏览器上输入一个返回json串测试地址进行配置验证 测试地址如下:

1
http://music.163.com/api/search/get/web?csrf_token=hlpretag=&hlposttag=&s=阳光正好-十二越&type=1&offset=0&total=true&limit=1

image-20240411174633446

如果我们能在proxman中能找到对应的测试地址和请求响应 则表示配置成功:

image-20240411174809359

不管是http还是https请求都能正常拦截:

image-20240411175000111

配置完毕!

本文为作者原创 转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

各大音乐平台的api汇总

发表于 2024-04-11

网易云音乐

歌曲搜索

格式

请求方式 : POST

请求地址 :

1
https://music.163.com/api/search/get/web?csrf_token=hlpretag=&hlposttag=&s=歌名&type=1&offset=0&total=true&limit=1

示例

1
https://music.163.com/api/search/get/web?csrf_token=hlpretag=&hlposttag=&s=阳光正好-十二越&type=1&offset=0&total=true&limit=1

效果

请求结果如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
{
"result": {
"songs": [
{
"id": 1335942808,
"name": "阳光正好",
"artists": [
{
"id": 31021271,
"name": "十二越",
"picUrl": null,
"alias": [],
"albumSize": 0,
"picId": 0,
"fansGroup": null,
"img1v1Url": "https://p2.music.126.net/6y-UleORITEDbvrOLV0Q8A==/5639395138885805.jpg",
"img1v1": 0,
"trans": null
}
],
"album": {
"id": 74994476,
"name": "阳光正好",
"artist": {
"id": 0,
"name": "",
"picUrl": null,
"alias": [],
"albumSize": 0,
"picId": 0,
"fansGroup": null,
"img1v1Url": "https://p1.music.126.net/6y-UleORITEDbvrOLV0Q8A==/5639395138885805.jpg",
"img1v1": 0,
"trans": null
},
"publishTime": 1545753600000,
"size": 1,
"copyrightId": 558010,
"status": 0,
"picId": 109951163752920822,
"mark": 0
},
"duration": 304111,
"copyrightId": 558010,
"status": 0,
"alias": [],
"rtype": 0,
"ftype": 0,
"mvid": 0,
"fee": 8,
"rUrl": null,
"mark": 8192
}
],
"songCount": 1
},
"code": 200
}

获取歌曲播放直链地址

格式

请求方式 :GET

请求地址 :

1
https://music.163.com/song/media/outer/url?id=歌曲ID.mp3

示例

歌曲ID我们可以通过浏览器地址获取 比如 http://music.163.com/#/m/song?id=1901359372

那么该首歌的直链地址为:

1
https://music.163.com/song/media/outer/url?id=1901359372.mp3

我们可以将该地址其嵌入到 HTML中 使用audio标签:

1
<audio controls="controls" title="歌名" src="直链地址"></audio>

效果

注意: 这种方式只能获取到免费歌曲的直链 如果是VIP收费歌曲 则获取不到

获取歌曲歌词

格式

请求方式 : GET

请求地址:

1
http://music.163.com/api/song/lyric?os=pc&id=歌曲ID&lv=-1&kv=-1&tv=-1

请求参数含义:

  • &tv=-1 : 表示获取歌词译文
  • &lv=-1 : 表示获取歌词原文
  • &kv=-1 : 表示获取歌词状态信息

示例

1
http://music.163.com/api/song/lyric?os=pc&id=1901359372&lv=-1&kv=-1&tv=-1

效果

请求结果如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"sgc": false,
"sfy": false,
"qfy": false,
"lrc": {
"version": 3,
"lyric": "[00:00.00] 作词 : 十二越\n[00:01.00] 作曲 : 十二越\n[00:02.00] 编曲 : 十二越\n[00:16.28]\n[00:31.53] 你在哪里\n[00:37.87] 回忆闪烁不停\n[00:45.05] 我在这里\n[00:50.81] 一直等你\n[00:53.24] 在原地\n[00:57.71]\n[00:58.54] 时间一点一点过去\n[01:03.65] 真假不明\n[01:07.00] 沉醉在我们记忆\n[01:11.04]\n[01:12.05] 世界开始变得忧郁\n[01:17.14] 昏暗不明\n[01:20.49] 只为了你\n[01:25.39]\n[01:25.62] 你说 你说你还爱我\n[01:30.63] 是唯一的承诺\n[01:33.92] 却只剩承诺 没有了结果\n[01:36.43]\n[01:38.86] 你说 你说你会等我\n[01:44.12] 是绝对的承诺\n[01:47.55] 却没了联络 只剩下沉默\n[01:49.28]\n[01:50.62]\n[01:52.65] 你在哪里\n[01:59.01] 回忆闪烁不停\n[02:06.15] 我在这里\n[02:11.62] 一直等你\n[02:14.56] 在原地\n[02:18.24]\n[02:19.68] 时间一点一点过去\n[02:24.75] 真假不明\n[02:28.15] 沉醉在我们记忆\n[02:29.63]\n[02:33.14] 世界开始变得忧郁\n[02:38.23] 昏暗不明\n[02:41.61] 只为了你\n[02:43.30]\n[02:46.70] 你说 你说你还爱我\n[02:51.73] 是唯一的承诺\n[02:55.12] 却只剩承诺 没有了结果\n[02:59.38]\n[03:00.18] 你说 你说你会等我\n[03:05.32] 是绝对的承诺\n[03:08.69] 却没了联络 只剩下沉默\n[03:10.41]\n[03:13.82] 你说 你说你还爱我\n[03:19.69] 最后的承诺变成了软弱\n[03:25.19] 你说 你说 你说....\n[03:28.86]\n[03:40.89] 你说 你说你还爱我\n[03:45.89] 是唯一的承诺\n[03:49.26] 却只剩承诺 没有了结果\n[03:51.51]\n[03:54.36] 你说 你说你还爱我\n[04:00.33] 最后的承诺变成了软弱\n[04:10.02] 你说\n[04:12.56]\n[04:29.25] 混音 : 十二越\n"
},
"klyric": {
"version": 0,
"lyric": ""
},
"tlyric": {
"version": 0,
"lyric": ""
},
"code": 200
}

获取歌曲的详细信息

格式

请求方法: GET

请求地址 :

1
http://music.163.com/api/song/detail/?id=歌曲id&ids=[歌曲id]

示例

1
http://music.163.com/api/song/detail/?id=1901359372&ids=[1901359372]

效果

请求结果如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
{
"songs": [
{
"name": "你说你还爱我",
"id": 1901359372,
"position": 0,
"alias": [],
"status": 0,
"fee": 8,
"copyrightId": 2708773,
"disc": "01",
"no": 4,
"artists": [
{
"name": "十二越",
"id": 31021271,
"picId": 0,
"img1v1Id": 0,
"briefDesc": "",
"picUrl": "http://p2.music.126.net/6y-UleORITEDbvrOLV0Q8A==/5639395138885805.jpg",
"img1v1Url": "http://p2.music.126.net/6y-UleORITEDbvrOLV0Q8A==/5639395138885805.jpg",
"albumSize": 0,
"alias": [],
"trans": "",
"musicSize": 0,
"topicPerson": 0
}
],
"album": {
"name": "茶余饭后",
"id": 137142351,
"type": "EP",
"size": 5,
"picId": 109951166702919266,
"blurPicUrl": "http://p2.music.126.net/3474m94J-3GI3LIfdRTBmA==/109951166702919266.jpg",
"companyId": 0,
"pic": 109951166702919266,
"picUrl": "http://p2.music.126.net/3474m94J-3GI3LIfdRTBmA==/109951166702919266.jpg",
"publishTime": 1638892800000,
"description": "",
"tags": "",
"company": "HIFIVE智能经纪人",
"briefDesc": "",
"artist": {
"name": "",
"id": 0,
"picId": 0,
"img1v1Id": 0,
"briefDesc": "",
"picUrl": "http://p2.music.126.net/6y-UleORITEDbvrOLV0Q8A==/5639395138885805.jpg",
"img1v1Url": "http://p2.music.126.net/6y-UleORITEDbvrOLV0Q8A==/5639395138885805.jpg",
"albumSize": 0,
"alias": [],
"trans": "",
"musicSize": 0,
"topicPerson": 0
},
"songs": [],
"alias": [],
"status": 0,
"copyrightId": 2708773,
"commentThreadId": "R_AL_3_137142351",
"artists": [
{
"name": "十二越",
"id": 31021271,
"picId": 0,
"img1v1Id": 0,
"briefDesc": "",
"picUrl": "http://p2.music.126.net/6y-UleORITEDbvrOLV0Q8A==/5639395138885805.jpg",
"img1v1Url": "http://p2.music.126.net/6y-UleORITEDbvrOLV0Q8A==/5639395138885805.jpg",
"albumSize": 0,
"alias": [],
"trans": "",
"musicSize": 0,
"topicPerson": 0
}
],
"subType": "录音室版",
"transName": null,
"onSale": false,
"mark": 0,
"gapless": 0,
"dolbyMark": 0,
"picId_str": "109951166702919266"
},
"starred": false,
"popularity": 5,
"score": 5,
"starredNum": 0,
"duration": 269258,
"playedNum": 0,
"dayPlays": 0,
"hearTime": 0,
"sqMusic": {
"name": null,
"id": 6988110024,
"size": 28403471,
"extension": "flac",
"sr": 44100,
"dfsId": 0,
"bitrate": 843901,
"playTime": 269258,
"volumeDelta": -37808
},
"hrMusic": null,
"ringtone": "",
"crbt": null,
"audition": null,
"copyFrom": "",
"commentThreadId": "R_SO_4_1901359372",
"rtUrl": null,
"ftype": 0,
"rtUrls": [],
"copyright": 0,
"transName": null,
"sign": null,
"mark": 0,
"originCoverType": 0,
"originSongSimpleData": null,
"single": 0,
"noCopyrightRcmd": null,
"hMusic": {
"name": null,
"id": 6988110025,
"size": 10772942,
"extension": "mp3",
"sr": 44100,
"dfsId": 0,
"bitrate": 320000,
"playTime": 269258,
"volumeDelta": -37825
},
"mMusic": {
"name": null,
"id": 6988110027,
"size": 6463782,
"extension": "mp3",
"sr": 44100,
"dfsId": 0,
"bitrate": 192000,
"playTime": 269258,
"volumeDelta": -35358
},
"lMusic": {
"name": null,
"id": 6988110029,
"size": 4309203,
"extension": "mp3",
"sr": 44100,
"dfsId": 0,
"bitrate": 128000,
"playTime": 269258,
"volumeDelta": -33920
},
"bMusic": {
"name": null,
"id": 6988110029,
"size": 4309203,
"extension": "mp3",
"sr": 44100,
"dfsId": 0,
"bitrate": 128000,
"playTime": 269258,
"volumeDelta": -33920
},
"mvid": 0,
"mp3Url": null,
"rtype": 0,
"rurl": null
}
],
"equalizers": {},
"code": 200
}

QQ音乐

本文为作者原创 转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

Chrome浏览器中如何下载SVG图片

发表于 2024-04-09

问题

当我们通过浏览器以图片链接的形式访问SVG图片时 我们会发现无法通过鼠标右键复制该图片

如果不考虑图片清晰度 那么可以用截图的方式简单粗暴地将图片拷贝下来

我们都知道SVG是矢量图 是一种基于XML语法的图像格式 这中格式图片可以实现无限缩放而不失真 所以我们必须将原图代码给拷贝下来才行

既然是代码 那就只能在开发者工具页面找

解决方案

  1. 点击图片鼠标右键选择检查 进入开发者页面

    image-20240409112448266

  2. 找到svg标签 鼠标右键Copy→Copy Element

    image-20240409112542590

  3. 将拷贝到的源代码粘贴到文本文档中 并将文件后缀改成svg即可

SVG相关工具

  • SVG在线转PNG
  • SVG图片在线压缩
  • PDF转SVG

本文为作者原创 转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

Git根据commit信息过滤并提取相应文件

发表于 2024-04-07

需求

最近发现GitHub图床仓库容量过大 已经严重影响到使用了 于是我准备将这个仓库按照不同的commit拆分多个独立的小仓库 方便后期的维护和管理

解决方案

  1. 首先创建一个无内容的空分支

    1
    git checkout --orphan new_branch_name
  2. 清除目录下所有的文件

    1
    git rm -rf .
  3. 将指定某个或者某些个commit提取到新分支上

    1
    git cherry-pick 12345abc def678 98765fed

    如果是一系列连续的commits,可以使用范围操作符:

    1
    git cherry-pick commit1^..commit2

    如果你想要按照某种模式过滤commits,可以使用git log和grep结合cherry-pick:

    1
    git log master --oneline | grep 'pattern' | awk '{print $1}' | xargs git cherry-pick

    这里需要将pattern替换为你想要匹配的文本,例如一个作者名或者某个关键词

    • git log master: 由于是空分支 无任何log记录 这里我要获取master分支上的commit信息
    • grep 'pattern': 对commit信息进行匹配过滤
    • --oneline : 匹配到的commitid在一行显示
    • awk '{print $1}'| xargs git cherry-pick: 将匹配到的commit打印出来 并作为git cherry-pick的参数
  4. 最后 将目录下提取出的文件迁移至新仓库中即可

本文为作者原创 转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

Paypal绑定收款银行账户的注意事项

发表于 2024-04-06

前言

目前国外的大部分平台都支持Paypal收付款 如果你在某些平台赚取了一些美元需要通过Paypal提现到国内账户 那么就需要关联银行账户

image-20240406124429746

image-20240406124626479

目前Paypal是以电汇的形式进行打款 这里国内招行银行为例 给大家介绍如何填写 以及相关注意事项

填写账户信息

image-20240406125038367

  • 银行名称:China Merchants Bank(填写英文名称 输入一部分英文网页会自动搜索 然后我们只需要进行选择即可)
  • SWIFT 代码:CMBCCNBS (选择好银行对应名称后 该代码会自动补全 当然我们也可以手动填写)
  • 分行地址: 这个只需要填写一个空格即可 注意是英文空格 需要将输入法切换至英文输入状态
  • 账号:招商银行一卡通卡号

本文为作者原创 转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

谷歌Adsense的PIN码接收问题

发表于 2024-04-05

前言

当Google Adsense账户收益达到10美元时 会触发PIN码验证 为六位数字验证码 该码以国际挂号信的方式按照Adsense上填写的联系地址进行邮寄 国内大概一个月左右就能收到

提高PIN码收取成功率

由于国际挂号信没有电话信息的 Adsense也未提供联系电话输入栏 这种形式的邮寄很容易造成收不到件 尤其是国内非一线城市

我之前收PIN码 就是没有填写联系电话 然后隔三差五往邮局跑 有些费劲 还好最后总算收到了

为了避免像我这样折腾 建议大家在地址栏补上自己的联系电话 这一招是很多网友测试过可行的 格式如下图:

image-20240406132833839

  1. 地址填写中文
  2. 地址填写办公楼地址更容易收到Pin码
  3. 地址栏加上姓名及联系电话,备注“到件联系1xxxxxxxx88 xx女士/先生”
  4. 邮编一定填写精确

仍然收不到PIN码怎么办

如果连续四次申请PIN码都未能收到 那么Google Adense 平台会提供一个人工验证通道

点击进入验证通道

人工验证需要填写姓名、电子邮件、发布商 ID、上传身份证照片 另外需要将身份证上的地址和 Google Adsense 账户的地址保持一致

待 Google审核通过后 谷歌就会发邮件告诉你已经通过验证

本文为作者原创 转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

谷歌Adsense大陆地区如何填写收款信息

发表于 2024-04-05

前言

自 2020年起Google AdSense暂停西联汇款,采用电汇方式付款。经过很多网友推荐,目前招商银行一卡通比较好用:没有手续费,收款稳定,一般也不要求提供证明文件,手机APP即可完成结汇。

本文一起来看看,谷歌adsense后台付款方式,招行银行一卡通信息如何填写

添加AdSense付款方式

前提当然是你要先申请一张招商银行一卡通。

注意:
银行卡必须为一类账户,二类及以下账户没有收款外币权限。
开通网银和手机银行。

登陆Google AdSense管理后台点击付款→付款信息→管理付款方式,添加付款方式。

image-20240405212739394

Adsense添加付款方式,招商银行信息如何填写?01

  • 付款人 ID(可选):不用填
  • 银行账户上的姓名:XING MINGMING(姓名拼音,大写,姓和名之间空格)
  • 银行名称:China Merchants Bank, H.O. Shenzhen, China(招行总行,不管哪个地方办理的卡都一样)
  • SWIFT BIC:CMBCCNBS
  • 账号:招商银行一卡通卡号
  • 重新输入账号:招商银行一卡通卡号
  • 中转银行:不填
  • 最终汇入方或最终收款人:不用填
  • 勾选设为主要付款方式

填写完成后,点击保存即可!

image-20240405211906512

AdSense付款

当谷歌AdSense账号余额达到$100,谷歌AdSense固定在每个月21日(中国时间22日)发起付款,1-3工作日可收到汇款。

招行APP结汇

下载安装登陆招商银行一卡通APP,找到【外汇结汇】,点开后点击【去结汇】
在【结汇委托】界面:

  • 卖出货币:选择美元现汇
  • 结汇资金来源:选择【其他经常转移】或【职工报酬和赡家款】
  • 结汇金额:输入要结汇的金额

Adsense添加付款方式,招商银行信息如何填写?04

最后点击确定,输入密码即可成功结汇,结汇后的人民币就自动打入银行卡。

注意:
每个人年度结汇总额度($50000),如果超出可到银行柜台申请额度。
结汇业务办理时间是 8:30-22:00。

本文转载自 : 自由超

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

谷歌Adsense新加坡税务信息如何填写

发表于 2024-04-05

前言

2023年10月起,谷歌adsense中国区、香港区等亚太地区账号后台都会提示:

需要添加新加坡税务信息,为了避免收款延迟,并确保预扣税款准确无误,请务必尽快提供您的新加坡税务信息!

这篇文章将给大家分享如何填写新加坡税务信息以及如何申请《中国税收居民身份证明》

为什么要提交新加坡税务信息

我们虽然提供过美国税务信息,但是adsense的广告费用,并不是直接从美国谷歌汇出。谷歌在全球各地有不同分公司,负责不同的区域。中国区账号所在的亚太地区广告费都是从谷歌新加坡分公司汇出的,所以需要提供新加坡税务信息。

参考谷歌官方说明:https://support.google.com/product-documentation/answer/13401799#zippy=

谷歌adsense新加坡税务信息如何填写?如何申请中国税收居民身份证明?01

新加坡税务信息填写

点击【添加税务信息】,点击【开始填表】

谷歌adsense新加坡税务信息如何填写?如何申请中国税收居民身份证明?02

谷歌adsense新加坡税务信息如何填写?如何申请中国税收居民身份证明?03

谷歌adsense新加坡税务信息如何填写?如何申请中国税收居民身份证明?04

公司信息填写:选择【个人/独资经营者】,下面常设机构、注册服务税都选【否】

谷歌adsense新加坡税务信息如何填写?如何申请中国税收居民身份证明?05

免税:您是否有资格申请免税待遇,当然选【是】

谷歌adsense新加坡税务信息如何填写?如何申请中国税收居民身份证明?06

税务居住地:上面选了【是】之后,就会跳出税务居住地。国家地区我们选择【中国】,税务居住地证明,我们选择【税务居住地证明】。新加坡谷歌只认可政府签发的居住地证明, 其他证件如身份证, 护照, 水费电费发票是没用的。这个地方就是要提交《中国税收居民身份证明》,下面我们来看看如何申请这个证明。

谷歌adsense新加坡税务信息如何填写?如何申请中国税收居民身份证明?07

申请《中国税收居民身份证明》

什么是《中国税收居民身份证明》?

《中国税收居民身份证明》是依据我国对外签署的避免双重征税协定,为帮助中国居民企业和个人享受在境外取得所得时的协定优惠待遇,由税务部门开具的证明企业或个人的中国税收居民身份的一种制式证明。

《中国税收居民身份证明》有什么作用?

中国居民企业和个人开展对外投资、经营和提供劳务活动时,如果取得相应的收入,且在投资东道国负有纳税义务(主要是企业所得税和个人所得税),为适用我国与东道国签署的税收协定以减轻在东道国的税收负担,就需要向当地税务部门提交《中国税收居民身份证明》。简而言之,就是可以用来减轻税负。

《中国税收居民身份证明》怎么申请?

线上线下都能办。建议线上办理,更简单高效。每个省市税务申请的界面不一样,要填写或提交的材料不一样,像江苏税务必须要提交一个合同,不然无法申请。实际上全国税务都可以申请,我们以深圳税务为例,实测申请也更简单。

可按以下步骤申请:
网页打开深圳税务电子税务局

网上办税 (chinatax.gov.cn)

谷歌adsense新加坡税务信息如何填写?如何申请中国税收居民身份证明?08

点击【我要办税】

谷歌adsense新加坡税务信息如何填写?如何申请中国税收居民身份证明?21

登陆界面我们使用【个人所得税APP】扫码登陆,个人所得税APP应该大家都有。如果深圳税务APP和个人所得税APP之前都没有注册,要单独注册下。

谷歌adsense新加坡税务信息如何填写?如何申请中国税收居民身份证明?09

登陆之后,点击【我要办税】,再点击【证明开具】

谷歌adsense新加坡税务信息如何填写?如何申请中国税收居民身份证明?10

再点击【中国税收居民身份证明开具】

谷歌adsense新加坡税务信息如何填写?如何申请中国税收居民身份证明?11

再点击【中国税收居民身份证明开具】

谷歌adsense新加坡税务信息如何填写?如何申请中国税收居民身份证明?12

跳出申请页面,点击最下面的【申请】

谷歌adsense新加坡税务信息如何填写?如何申请中国税收居民身份证明?13

申请页面填写信息,标红星的框都是必填项:

  • 英文名称:拼音名在前,姓在后 建议使用大写
  • 职业:可任意填写,和实际接近最好
  • 享受待遇所得类型:独立个人劳务
  • 享受待遇金额:任意填
  • 通讯地址、境内住所地址、现居住地址:建议都填写真实地址
  • 联系电话:填写自己的手机号
  • 申请年度:可以写2024
  • 合伙企业信息:不用填,斜杠

谷歌adsense新加坡税务信息如何填写?如何申请中国税收居民身份证明?14

  • 缔约对方国家(地区):选择新加坡共和国
  • 对方纳税人识别号:200817984R
  • 对方纳税人名称(英文):Google Asia Pacific Pte. Ltd.
  • 对方纳税人名称(英文):谷歌亚太私人有限公司
  • 拟享受协定名称:谷歌adsense广告费
  • 拟享受协议条款:可以不填
  • 拟享受协定收入金额:可以写50000,没有硬性要求
  • 预计减免税金额:可以写50000,没有硬性要求
  • 申请人或代理人:填写自己的中文姓名
  • 税务机关:任意选择

谷歌adsense新加坡税务信息如何填写?如何申请中国税收居民身份证明?15

申请信息填写完毕后,点击【保存】,即完成申请。

返回申请页面,点击【查询】,里面可以马上看到刚刚申请好的证明,效率是真的高!勾选后点击【打印】。

谷歌adsense新加坡税务信息如何填写?如何申请中国税收居民身份证明?16

会自动跳出PDF版的《中国税收居民身份证明》,我们保存下来。

谷歌adsense新加坡税务信息如何填写?如何申请中国税收居民身份证明?17

上传《中国税收居民身份证明》

回到之前新加坡税务信息提交的页面。我们把上面申请到的《中国税收居民身份证明》上传上去。

谷歌adsense新加坡税务信息如何填写?如何申请中国税收居民身份证明?18

上传成功后,我们点击【提交】,就完成了新加坡税务信息的填写和提交,后面就等待谷歌adsense审核。

谷歌adsense新加坡税务信息如何填写?如何申请中国税收居民身份证明?19

谷歌adsense新加坡税务信息如何填写?如何申请中国税收居民身份证明?20

审批结果

提交之后,几乎每天都会关注下审核结果。实际1/19提交,通过审核是在1/30。中间真的是经过了7个工作日,一天不多一天不少。看了下有效期是到12/31

谷歌adsense新加坡税务信息如何填写?如何申请中国税收居民身份证明?22

谷歌adsense新加坡税务信息如何填写?如何申请中国税收居民身份证明?23

谷歌adsense新加坡税务信息如何填写?如何申请中国税收居民身份证明?24

YouTube视频版

本文转载自 : 自由超

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

1234…48

乱码三千

android程序员一枚,擅长java,kotlin,python,金融投资,欢迎交流~

479 日志
139 标签
RSS
© 2024 乱码三千
本站总访问量次
由 Hexo 强力驱动
|
主题 — NexT.Muse v5.1.4
0%