首页 文章 精选 留言 我的

精选列表

搜索[安全相关],共10011篇文章
优秀的个人博客,低调大师

QuickDAO 4.1.2 发布,索引相关功能增强

QuickDAO4.1.2版本已发布,可在maven中央仓库下载(阿里云仓库可能更新不及时),本次更新内容如下: [新增]@CompositeIndex注解,支持在表上建立组合索引 [新增]@UniqueField注解,标识哪些字段作为判断实例是否唯一 [新增]支持指定返回列类型,可通过columnTypeMapping方法指定要返回的列的类型 [优化]@Index注解现在支持制定索引类型,索引名称,索引方法等等功能 [优化]SQLite数据库支持LocalDate和LocalDateTime类型 QuickDAO是一款简单易用的ORM框架,虽然市面上ORM框架已经非常多,但是有很多痛点这些框架并没有解决.QuickDAO相较于其他ORM框架的特点如下: 支持外键关联操作 虽然很多ORM框架宣称支持外键查询,但无一例外最终形式仍然是让开发者手写SQL语句.QuickDAO在API设计层面上支持外键关联查询,真正的无需手写多表关联查询SQL语句. 所有对数据库的操作只需要注入一个DAO对象即可完成 Mybatis等框架一个实体类对应一个Mapper接口文件,一个xml文件.特别是涉及到多表查询时,经常在开发中才发现需要引入另外的XXXMapper.QuickDAO只需要一个DAO对象,即可完成对数据库的所有操作 支持Java代码里指定数据库列类型,索引等信息 QuickDAO支持自动建表,自动新增字段.不仅如此,QuickDAO支持在Java代码里指定列类型,列名,是否创建外键,创建数据库索引等等.此外,QuickDAO还支持查询数据库字段信息,新增字段,删除字段等操作. 强大的查询操作API 如果您真正深入了解QuickDAO后,会发现QuickDAO的API设计绝对让您欣喜.QuickDAO的Query接口定义了大量查询操作API,例如非空查询,等值查询,大于小于不等于查询,IN查询,子查询,分页,排序,指定返回的列等等等等.这些接口都添加了相应的接口注释,此外命名也是相对规范的,所有添加查询的接口都以add开头. 最后,写这个框架的初衷是市面上已有的ORM框架不能解决开发中痛点.QuickDAO经过近2年的支持开发,目前已经迭代到4.X版本,也在个人项目,公司项目实际使用过.希望本人开发的QuickDAO框架能够为中国的开源事业贡献一份自己的力量. QuickDAO文档: https://quickdao.schoolwow.cn QuickDAO的github地址: https://github.com/sunyue1380/QuickDAO4 QuickDAO的gitee地址: https://gitee.com/648823596/quickdao4

优秀的个人博客,低调大师

C# webapi相关问题记录

C# Swagger问题记录: 1、使用nginx代理时无法访问Swagger 修改文件Web.config;在configuration节点下添加节点(暂未明白该配置项的作用) <add key="aspnet:UseHostHeaderForRequestUrl" value="true"/> 2、使用nginx代理后出现 Can't read from server. It may not have the appropriate access-control-origin settings修改文件Web.config;在system.webServer节点下添加节点 <httpProtocol> <customHeaders> <add name="Access-Control-Allow-Origin" value="*"/> <add name="Access-Control-Allow-Headers" value="Content-Type"/> <add name="Access-Control-Allow-Methods" value="POST, GET, PUT, DELETE, OPTIONS"/> </customHeaders> </httpProtocol>

优秀的个人博客,低调大师

阿里云APP备案操作相关流程

阿里云APP端申请备案是现在比较流行的备案方法,方便快捷,适合新手使用。 阿里云2000券免费领取(阿里云券的作用:购买阿里云产品,最后支付结算的时候,阿里云券可抵扣一部分费用。 要注意的是,目前支持首次备案和新增网站(原备案不在阿里云)两种备案场景。暂时不支持新增网站(原备案在阿里云)、接入备案、变更备案等其他备案场景,其他的备案场景都可在PC端操作。 使用阿里云APP端申请备案时,备案申请操作步骤如下: 1、登录阿里云APP,进入APP备案操作入口。 如果在APP端备案时,系统提示前往PC端进行操作,那么你当前的场景就只能在PC端操作了。 2、填写信息及备案接入产品验证备案类型 填写主办单位信息和网站等信息,根据备案类型上传主办单位的证件材料,并进行真实性核验。 3、选择买好的服务器,进行产品验证。 阿里云2000券免费领取(阿里云券的作用:购买阿里云产品,最后支付结算的时候,阿里云券可抵扣一部分费用。 说明:如果无法选择服务器实例,可能是因为无可用备案服务号,建议更换有可用备案服务号的服务器。更多可能无法选择实例的可能原因及 系统会根据填写信息自动判定要办理的备案类型。 4、填写主体信息和网站信息 填写网站信息以及办理备案的个人或者单位的真实信息。上传主体负责人和网站负责人的证件,并进行网站负责人的真实性核验。 5、上传资料 上传证件照片或证件彩色扫描件。 6、信息核验 在提交备案申请订单前,请您在此步骤中仔细确认您的主体、网站、接入等备案信息是否正确,确认无误后提交备案订单。 说明:如果使用PC端进行备案申请,在移动端完成资料上传和真实性核验后,您可在移动端继续信息核验。如果您的登录账号无法登录阿里云APP,就要去PC端继续操作信息核验。 7、备案初审 提交备案申请后,阿里云备案审核专员会对备案信息初步审核。 8、管局审核初审完成后,阿里云备案审核专员会将备案申请转交至对应管局处做最终的管局审核。管局审核通过后您的备案即已完成,审核结果会发送至短信、邮箱。 9、不管阿里审核,还是管局审核期间,在工作时间内都要保持手机有人接听状态,老魏就是因为审核专员多次打电话无人接听,延误了备案时间。 阿里云2000券免费领取(阿里云券的作用:购买阿里云产品,最后支付结算的时候,阿里云券可抵扣一部分费用。

优秀的个人博客,低调大师

使用Python获取ECS相关信息2

上一次我们已经知道如何用python获取ECS信息了,不知道的可以点这里 1.返回数据格式 通过上回的代码,我们将会获得如下的数据(json格式) {"PageNumber":1,"TotalCount":1,"PageSize":10,"RequestId":"CF15510B-9510-4E04-939B-F48C453D0E62","Instances":{"Instance":[{"ImageId":"centos_7_04_64_20G_alibase_201701015.vhd","VlanId":"","EipAddress":{"IpAddress":"","AllocationId":"","InternetChargeType":""},"ZoneId":"cn-shanghai-b","IoOptimized":true,"SerialNumber":"41b2b827-014b-4723-bcdf-a5764c9d1c2e","Cpu":1,"Memory":2048,"DeviceAvailable":true,"SecurityGroupIds":{"SecurityGroupId":["sg-uf6fq26zc62t0u0t8ftr"]},"SaleCycle":"","AutoReleaseTime":"","OSType":"linux","ResourceGroupId":"","OSName":"CentOS 7.4 64位","InstanceNetworkType":"vpc","HostName":"aliyun-sh","CreationTime":"2018-12-05T06:51Z","RegionId":"cn-shanghai","DeletionProtection":false,"OperationLocks":{"LockReason":[]},"ExpiredTime":"2019-06-05T16:00Z","InnerIpAddress":{"IpAddress":[]},"InstanceTypeFamily":"ecs.n4","InstanceId":"i-uf6gchn2j65r5scbn6rz","NetworkInterfaces":{"NetworkInterface":[{"MacAddress":"00:16:3e:02:0e:a2","PrimaryIpAddress":"172.19.214.188","NetworkInterfaceId":"eni-uf68mu7aigxbcs3huv90"}]},"InternetMaxBandwidthIn":500,"CreditSpecification":"","InternetChargeType":"PayByBandwidth","SpotStrategy":"NoSpot","StoppedMode":"Not-applicable","InternetMaxBandwidthOut":1,"VpcAttributes":{"NatIpAddress":"","PrivateIpAddress":{"IpAddress":["172.19.214.188"]},"VSwitchId":"vsw-uf6a4tfeug6t05akf9w92","VpcId":"vpc-uf6eyafn4cmj5nol253d4"},"SpotPriceLimit":0.0,"StartTime":"2018-12-14T02:33Z","KeyPairName":"哇咔咔的sh密钥","InstanceName":"哇咔咔的上海ECS","Description":"","PublicIpAddress":{"IpAddress":["47.100.239.99"]},"InstanceType":"ecs.n4.small","Status":"Running","Recyclable":false,"ClusterId":"","GPUSpec":"","GPUAmount":0,"InstanceChargeType":"PrePaid","DedicatedHostAttribute":{"DedicatedHostId":"","DedicatedHostName":""},"DeploymentSetId":""}]}} 稍微排版一下是这样的 { "PageNumber":1, "TotalCount":1, "PageSize":10, "RequestId":"04F89A1C-EC73-4F6C-84EE-F2703732DE09", "Instances": { "Instance": [ { "ImageId":"centos_7_03_64_20G_alibase_20170818.vhd", "VlanId":"", "EipAddress": { "IpAddress":"", "AllocationId":"", "InternetChargeType":"" }, "ZoneId":"cn-shanghai-b", "IoOptimized":true, "SerialNumber":"41b2b827-014b-4723-bcdf-a5764c9d1c2e", "Cpu":1, "Memory":2048, "DeviceAvailable":true, "SecurityGroupIds": { "SecurityGroupId":["sg-uf6fq26zc62t0u0t8ftr"] }, "SaleCycle":"", "AutoReleaseTime":"", "OSType":"linux", "ResourceGroupId":"", "OSName":"CentOS 7.3 64位", "InstanceNetworkType":"vpc", "HostName":"aliyun", "CreationTime":"2018-12-05T06:51Z", "RegionId":"cn-shanghai", "DeletionProtection":false, "OperationLocks":{"LockReason":[]}, "ExpiredTime":"2019-06-05T16:00Z", "InnerIpAddress":{"IpAddress":[]}, "InstanceTypeFamily":"ecs.n4", "InstanceId":"i-uf6gchn2j65r5scbn6rz", "NetworkInterfaces": { NetworkInterface": [ { "MacAddress":"00:16:3e:02:0e:a2", "PrimaryIpAddress":"172.19.214.188", "NetworkInterfaceId":"eni-uf68mu7aigxbcs3huv90" } ] }, "InternetMaxBandwidthIn":500, "CreditSpecification":"", "InternetChargeType":"PayByBandwidth", "SpotStrategy":"NoSpot", "StoppedMode":"Not-applicable", "InternetMaxBandwidthOut":1, "VpcAttributes": { "NatIpAddress":"", "PrivateIpAddress": { "IpAddress":["172.19.214.188"] }, "VSwitchId":"vsw-uf6a4tfeug6t05akf9w92", "VpcId":"vpc-uf6eyafn4cmj5nol253d4" }, "SpotPriceLimit":0.0, "StartTime":"2018-12-05T06:55Z", "KeyPairName":"哇咔咔的密钥", "InstanceName":"哇咔咔", "Description":"", "PublicIpAddress": { "IpAddress"["47.100.239.99"] }, "InstanceType":"ecs.n4.small", "Status":"Running", "Recyclable":false, "ClusterId":"", "GPUSpec":"", "GPUAmount":0, "InstanceChargeType":"PrePaid", "DedicatedHostAttribute": { "DedicatedHostId":"", "DedicatedHostName":"" }, "DeploymentSetId":"" } ] } } 2.数据处理 接下来我们就要用python对这些数据进行处理,恕本人才疏学浅,用了最蠢的方法来处理,直接上代码: 首先用python中的json.loads方法将获取到的json数据转化为字典 dictA=json.loads(response) 之后用for循环将一层一层的字典,列表的嵌套提取出来,并且存储到一个新的字典里面去: dictEnd={} dictB=dictA['Instances'] listA=dictB['Instance'] dictC=listA[0] for i in dictC: if(type(dictC[i])==dict): dictD=dictC[i] if(type(dictD)==dict): for d in dictD: dictE=dictD[d] if(type(dictE)==list): listB=dictE if listB: if(type(listB[0])==dict): dictF=listB[0] for f in dictF: dictEnd[f]=dictF[f] else: dictEnd[d] = dictD[d] elif(type(dictE)==dict): dictG=dictE else: dictEnd[d]=dictD[d] else: dictEnd[i]=dictC[i] 这样的话,我们就已经将这个ECS的信息存储到diceEnd这个字典里面了,由于本人决定只把数据的值的部分输出到表格中,所以使用以下代码把刚刚生成的dict转换为一个list listC=list(dictEnd.values()) 3.输出到表格 这里使用openpyxl这个模块将内容输出到表格 wb = Workbook() ws=wb.active ws.append(listC) wb.save('txt.xlsx') 4.完整代码 from aliyunsdkcore.client import AcsClient from aliyunsdkecs.request.v20140526 import DescribeInstancesRequest from openpyxl import Workbook import json #创建AcsClient实例 client = AcsClient( "你的AccessKey", "你的AccessKey secret", "地域" ); # 创建request,并设置参数 request = DescribeInstancesRequest.DescribeInstancesRequest() request.set_PageSize(10) # 发起API请求并显示返回值 response = client.do_action_with_exception(request) dictA=json.loads(response) dictEnd={} dictB=dictA['Instances'] listA=dictB['Instance'] dictC=listA[0] for i in dictC: if(type(dictC[i])==dict): dictD=dictC[i] if(type(dictD)==dict): for d in dictD: dictE=dictD[d] if(type(dictE)==list): listB=dictE if listB: if(type(listB[0])==dict): dictF=listB[0] for f in dictF: dictEnd[f]=dictF[f] else: dictEnd[d] = dictD[d] elif(type(dictE)==dict): dictG=dictE else: dictEnd[d]=dictD[d] else: dictEnd[i]=dictC[i] #转化为list listC=list(dictEnd.values()) for i in range(len(listC)): if (type(listC[i])==list): listC[i]="" for i in listC: print(i) #excel wb = Workbook() ws=wb.active ws.append(listC) wb.save('txt.xlsx') 以上纯属本人理解,有什么错误的地方还望各位大神指正

优秀的个人博客,低调大师

CoreOS裸机iso安装和相关配置

裸机通过iso安装CoreOS,个人趟了很多坑,以下就是完整的从零开始部署和配置的过程,希望对大家有用。 一、安装CoreOS到硬盘 1. 准备Live iso镜像,制作好usb启动盘 Live iso下载地址 2. 搭建Apache Server服务 配置Apache可以访问静态文件 在访问的根路径(win下为htdocs/)下创建名为1745.7.0的目录 3. 下载安装镜像和sig签名文件 下载地址 coreos_production_image.bin.bz2 coreos_production_image.bin.bz2.sig 将这两个文件放到1745.7.0的目录下 4. 写好cloud-config.yaml 我们简单化,不用配置etcd集群。 #cloud-config hostname: coreos users: - name: core ssh-authorized-keys: - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCwKMzeSX8iavwLGuok..... - groups: - sudo - docker 其中ssh-authorized-keys是无密码登陆必须配置的密钥对,我们可以通过Bitvise SSH Client客户端中的Client Key Manager功能来生成(导出Public Key),然后复制公钥串值到ssh-rsa后面,注意中间有一个空格。 网络我们安装后再配置也行,或者在cloud-config.yaml中配置好也行 #cloud-config hostname: coreos users: - name: core ssh-authorized-keys: - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCwKMzeSX8iavwLGuok..... - groups: - sudo - docker networkd: units: - name: 10-static.network contents: | [Match] Name=enp0s3 [Network] Address=192.168.57.102/24 - name: 20-dhcp.network contents: | [Match] Name=enp0s8 [Network] DHCP=yes 将这个文件放到htdocs目录下 5. 裸机启动CoreOS Live并进行安装 下载自己搭建的Apache服务器(ip:192.168.1.100)上的cloud-config.yaml文件 wget http://192.168.1.100/cloud-config.yaml 执行安装 sudo coreos-install -d /dev/sda -b http://192.168.1.100 -c ./cloud-config.yaml 安装完成后,重启机器,从硬盘启动即可。 二、配置CoreOS 1. SSH密钥登陆 查看IP,然后通过用户名(core)+私钥(之前生成的)进行登陆 2. 设置root密码 登陆后,执行命令修改root密码 sudo passwd root 3. 配置网络 配置文件路径:/etc/systemd/network/ 静态IP配置文件(没有的话,自行创建):10-static.network [Match] Name=en* [Network] DNS=192.168.3.1 Address=192.168.3.200/24 Gateway=192.168.3.1 动态IP配置文件(没有的话,自行创建):20-dhcp.network [Match] Name=en* [Network] DHCP=yes 更新后需要重启网络服务 sudo systemctl restart systemd-networkd 4. 其他一些常用命令 sudo hostnamectl set-hostname coreos1 #修改主机名 setenforce 1/0 #开启关闭SELinux getenforce #查看SELinux状态 timedatectl #查看系统时间 timedatectl list-timezones #查看支持的时区列表 timedatectl set-timezone Asia/Shanghai #设置时区为上海

优秀的个人博客,低调大师

初学Python——字符串相关操作

Pyhton中字符串的格式化输出在前面已经总结了,接下来介绍一些常用的字符串操作 先定义一个字符变量,以下的操作都以此为例: name=" my name is china " #(首尾有空格) 1.首字母大写(整个字符串的首字母) print(name.capitalize()) 运行结果:my name is china并没有变化!是因为第一个字符是空格!如果把第一个空格去掉,结果为:My name is china 2.将所有字母变大写或变小写 print(name.lower()) #把所有字母变成小写 print(name.upper()) #把所有字母变成大写 输出结果分别为: my name is chinaMY NAME IS CHINA 3.首字母大写(每个单词) print(name.title()) 输出结果为:My Name Is China 4.大小写互换 print(name.swapcase()) 输出结果为:MY NAME IS CHINA此方法是:大写变小写,小写变大写 5.统计相同字符的数目 print(name.count("i")) #统计字符串中字符i的个数 6.Center()方法 print(name.center(50,"-")) 运行结果: ---------------- my name is china ---------------- 一共50个字符,字符串以外用指定的“-”来填充,并将字符串变量内容居中 7.判断字符串是否以这个字符结尾 print(name.endswith("ng")) #判断字符串是否以“ng”结尾 运行结果为:False 8.在字符串中寻找某个子字符串的位置 例如:寻找字符串中“name”的位置 print(name.find("name")) 输出结果为4,即“name”首字母的地址“n”的地址 9.去掉字符串两端的空格 有时候为了避免不必要的麻烦,会将用户输入的字符串去掉两端的空格 print(name.strip()) 10.去掉字符串左边或右边的空格 print(name.lstrip()) #去掉左边的空格 print(name.rstrip()) #去掉右边的空格 11.字符串的加密 p=str.maketrans("abcedfghij","9876543210") #编写密码规则 print(name.translate(p)) #按照上述密码转换规则将明文翻译成密文 先上运行结果: my n9m6 1s 721n9 看懂了吗?就是用“9”来替代“a”,“8”来替代“b”,“7”来替代“c”,……,依次类推 12.将字符串中特定字符替换 将字符串中某些旧字符替换成新字符,并返回新的字符串 print(name.replace("m","M",2)) 将字符串中前2个“m”替换成“M” 结果为:My naMe is china 第一个值是被替换字符,第二个值是替换字符,第三个值是被替换的个数(可以省略) 13.字符串切片(截取) 不光列表,字符串也可以切片,而且和列表的操作一样 新定义一个字符串 运行结果: 14.获取字符串的长度 len(a) 获取的是字符串的长度(字符数、字节数)。此方法不是字符串的专属,列表、字典等其他数据类型都可以用。列表获取的是元素的个数,字典获取的是key的数量。 15.split()分割函数 split()通过指定分隔符对字符串进行分割,并返回分割后的字符串列表。如果参数 num 有指定值,则仅分隔 num 个子字符串 split(str,num) 参数: str:分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。 num:分割次数(可以省略) str = "Line1-abcdef \nLine2-abc \nLine4-abcd" print str.split( ) print str.split(' ', 1 ) #运行结果: ['Line1-abcdef', 'Line2-abc', 'Line4-abcd'] ['Line1-abcdef', '\nLine2-abc \nLine4-abcd'] 16.index() print(str.index("L")),输出第一个L的下标

优秀的个人博客,低调大师

GRUB2相关概念

GNU GRUB,简称“GRUB”,是一个来自GNU项目的启动引导程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。 GNU GRUB的前身为Grand Unified Bootloader。它主要用于类Unix系统;同大多Linux发行版一样,GNU系统也采用GNU GRUB作为它的启动器。 目前 GRUB 分成 GRUB legacy 和 GRUB 2。版本号是 0.9x 以及之前的版本都称为 GRUB Legacy ,从 1.x 开始的就称为 GRUB 2。 Grub 2 是新一代的Grub,它实现了一些Grub中所没有的功能: 1、模块化设计 不同于Grub的单一内核结构,Grub 2 的功能分布在很多的小模块中,并且能在运行时动态装载和卸除。 2、支持多体系结构 Grub 2可支持PC(i386), MAC(powerpc)等不同的体系机构,而且支持最新的EFI架构。 3、国际化的支持 Grub 2 可以支持非英语的语言。 4、内存管理 Grub 2 有真正的内存管理系统。 5、脚本语言 Grub 2 可以支持脚本语言,例如条件,循环,变量,函数等。 本文转自 拾瓦兴阁 51CTO博客,原文链接:http://blog.51cto.com/ponyjia/1692815

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册