解决Unbound报错unknown keyword ‘tls-*’

在配置Unbound时遇到如下错误:

/etc/unbound/unbound.conf:16: error: unknown keyword 'tls-service-key' 
/etc/unbound/unbound.conf:16: error: stray ':' 
/etc/unbound/unbound.conf:16: error: stray '"' 
/etc/unbound/unbound.conf:16: error: unknown keyword 'key.pem' 
/etc/unbound/unbound.conf:16: error: stray '"' 
/etc/unbound/unbound.conf:17: error: unknown keyword 'tls-service-pem' 
/etc/unbound/unbound.conf:17: error: stray ':' 
/etc/unbound/unbound.conf:17: error: stray '"' 
/etc/unbound/unbound.conf:17: error: unknown keyword 'fullchain.pem' 
/etc/unbound/unbound.conf:17: error: stray '"' 
/etc/unbound/unbound.conf:18: error: unknown keyword 'tls-port' 
/etc/unbound/unbound.conf:18: error: stray ':' 
/etc/unbound/unbound.conf:18: error: unknown keyword '853' 
read /etc/unbound/unbound.conf failed: 13 errors in configuration file [1579421749] unbound[17698:0] fatal error: Could not read config file: /etc/unbound/unbound.conf

搜寻后得知是官方文档有变更,将tls全部改为ssl即可。

树莓派WiFi设置静态IP

ifconfig查看网络接口:

此处选择wlan0

编辑/etc/network/interfaces

修改或添加以下内容:

auto wlan0
 iface wlan0 inet manual
 wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

注意不能写成iface wlan0 inet dhcp,否则dhcpcd不会生效。

编辑/etc/dhcpcd.conf

在文件末尾添加以下内容:

interface wlan0
 static ip_address=192.168.1.100/24
 static routers=192.168.1.1
 static domain_name_servers=192.168.1.1

修改wlan0为你的网络接口,ip_address为你的IP地址,routers为你的网关,domain_name_servers为你的dns。

完成后重启系统即可。

Minecraft 1.14.4 安装Fabric MOD (MultiMC) | Fabric安装Optifine

Minecraft 1.14后Forge已逐渐被Fabric替代。Fabric和Forge一样是一个模组API,1.14后的主流Mod都使用该API。

本文启动器使用MultiMC,一款开源的版本分离式的MC启动器,也是Fabric官方推荐使用的启动器。你可以在https://multimc.org/ 下载到它。需要正版账号

1.创建实例

如果你还没有创建1.14.4的实例,启动后点击添加实例创建一个1.14.4的实例。

创建完成后选中新建的1.14.4实例,点击右侧的编辑实例

选择版本,点击右侧的安装Fabric

在弹出的窗口中选择推荐的版本(带星标)安装即可。

2.安装Fabric API

https://www.curseforge.com/minecraft/mc-mods/fabric-api/files/all 下载Fabric jar文件,如图所示。

回到MiltiMC启动器,选择实例后点击右侧编辑实例,选择左侧加载Mods,加入刚才下载到的jar文件。

或者你也可以点击右侧的Minecraft文件夹按钮,将jar文件手动加入mods目录。

现在环境已经安装完成,如果想要安装Fabric Mod只需按上述方法添加下载好的jar文件即可。推荐在搜索mod时使用Minecraft 1.14.4 Fabric Mod + 关键字的方式进行检索。Forge Mod与Fabric不兼容

3.Optifine兼容Fabric

如果需要在Fabric中载入Optifine,你需要安装两个模块:

全部安装后即可与其它Fabric模块共存

解决Python向阿里云OSS上传文件时报错400

如题,该问题并不是100%出现。出错时服务器返回信息如下:

<?xml version="1.0" encoding="UTF-8"?>
<Error>
  <Code>InvalidArgument</Code>
  <Message>The bucket POST must contain the specified 'key'. If it is specified, please check the order of the fields</Message>
  <RequestId>C21E709A5EC76E5ED07C0D43</RequestId>
  <HostId>oss.example.com</HostId>
  <ArgumentName>key</ArgumentName>
  <ArgumentValue></ArgumentValue>
</Error>

官网文档对 The bucket POST must contain the specified ‘key’. If it is specified, please check the order of the fields 解释如下:

那么问题就明确了:由于在POST时使用了字典,其中的顺序并不是固定的。当key键排在file键后面时错误便会出现。解决方法也很简单,使用collections.OrderedDict。它是有序字典,可以明确键值对的添加顺序:

import collections

content  = collections.OrderedDict()
content ['key'] = 'file_key'
...
content ['file'] = your_file

这样提交之后键值的顺序便会固定,不再出现上述问题。