游客jfrdr4gtcpw76_个人页

游客jfrdr4gtcpw76
0
1
0

个人介绍

暂无个人介绍

擅长的技术

获得更多能力
通用技术能力:

暂时未有相关通用技术能力~

云产品技术能力:

暂时未有相关云产品技术能力~

阿里云技能认证

详细说明
暂无更多信息
暂无更多信息
正在加载, 请稍后...
暂无更多信息
  • 回答了问题 2018-07-26

    怎么理解源站和回源host

    详细解答可以参考官方帮助文档 源站:  源站决定了回源时,请求到哪个IP回源host:回源host决定回源请求访问到该IP上的哪个站点   例子1:源站是域名源站为www.a.com 回源host为www.b.com那么实际回源是请求到www.a.com解析到的IP,对应的主机上的站点www.b.com  例子2:源站是IP源站为1.1.1.1 回源host为www.b.com那么实际回源的是1.1.1.1对应的主机上的 站点www.b.com  如果问题还存在,请联系阿里云售后支持。   
    踩1 评论0
  • 回答了问题 2018-07-04

    怎么我的帐号没有送企业邮箱

    详细解答可以参考官方帮助文档 在您购买成功阿里云邮企业邮箱后,您可以按照此帮助文档进行邮箱开通的设置。建议按照:1、添加解析   2、设置密码   3、分配员工账号 完成企业邮箱开通。此处我们将以企业邮箱标准版为例,如果您购买的是企业邮箱集团版,分配子账号和域名解析部分请参考:集团邮局创建域帮助第一步:添加解析提醒:按要求正确设置邮箱域名解析,是使用企业邮箱的前提条件,未正确解析将直接影响此邮箱的收发邮件服务。登录后,您可以在“管理控制台 – 企业邮箱”下,点击您所购买邮箱 “管理”操作链接,选择“设置解析”标签。 ①   如果您所注册的域名与邮箱在同一会员下,根据系统提示,点击“一键添加域名解析”,系统会自动将域名和邮箱进行绑定;添加完成后也可登录”我的域名“中查看添加解析记录的情况。②   如存在异常无法直接操作解析,例如:不在同一会员下或域名在其他服务商注册,请参考“快速设置邮箱解析”或者根据页面提示处理。 备注:如果您的邮箱后缀为.cn结尾的域名,待审核成功后邮箱域名的解析才可生效。操作解析的域名解析记录类型优先级解析记录值@MX5mxn.mxhichina.com.@MX10mxw.mxhichina.com.pop3CNAME pop3.mxhichina.com.smtpCNAME smtp.mxhichina.com.imapCNAMEimap.mxhichina.com.mailCNAME mail.mxhichina.com.@TXT 'v=spf1 include:spf.mxhichina.com -all'注:如果您的域名解析服务是阿里云提供,解析设置成功后,一般10分钟左右解析生效,在此期间请耐心等待。邮箱域名解析状态说明:状态1、域名解析已生效:您可以正常收发信件和管理邮箱业务。状态2、域名解析未生效:由于解析未正确指向邮箱,您将无法正常使用网页版邮箱和客户端收发信件,但其他功能,例如创建账号、邮箱搬家等服务不受影响。解析未生效状态,系统会定时自动刷新,解析生效后自动更改状态,您也可以人工刷新状态。人工检查解析状态方法:登录后,在“管理控制台 – 企业邮箱”下,点击所购买邮箱后的“管理”操作链接,在“域名解析未生效”后点击“域名解析检查”,系统会自动检查您的域名是否生效,解析如已生效系统会自动刷新状态,状态会自动改为“域名解析已生效”。如果没有生效,还请您耐心登录解析生效。 第二步:设置邮箱管理员密码提醒:第一次使用企业邮箱,需要先对邮箱管理员的密码进行重置,并请牢记。在“管理控制台 – 企业邮箱”下点击所购买邮箱后的“管理”操作链接。① 云邮标准版管理员设置方法② 云邮集团版超级管理员密码设置方法二、分配账号1、登录邮箱网页版(webmail)进行管理云邮标准版创建用户方法:解析未生效前:您可以临时访问mail.mxhichina.com,进行登录。域名解析生效后,通过“mail.您的域名”地址进入邮箱登录界面,输入正确用户名和密码登录邮箱。备注:邮箱管理员登录,默认进入“企业邮箱域管理”,如果您在写信界面,可以点击邮箱右上角“企业邮箱域管理”进入2、点击域管理左侧的“员工账号管理”   3、 点击“新建账号”或批量操作“导入导出”账号。4、填写信息后,点击保存,用户添加成功。 常用客户端软件配置帮助:推荐您使用SSL加密连接,更加安全,使用时请注意加密端口465、995、993是否已在您的本地电脑和网络中开放。Outlook2010  outlook2007  foxmail6/7  iPad  iPhone  安卓(含IMAP)  MAC 如果问题还未能解决,请联系售后技术支持。
    踩1 评论0
  • 提交了问题 2018-06-21

    对象存储 OSS下载到本地文件

  • 回答了问题 2018-05-30

    com在解析到别名时,不带www的和别的解析记录有冲突

    详细解答可以参考官方帮助文档 NS CNAME A URL MX TXT AAAA SRV CAA NS 可重复 X X X X X X X X CNAME X 可重复 X X X X X X X A X X 可重复 X 无限制 无限制 无限制 无限制 无限制 URL X X X X 无限制 无限制 X 无限制 无限制 MX X X 无限制 无限制 可重复 无限制 无限制 无限制 无限制 TXT X X 无限制 无限制 无限制 可重复 无限制 无限制 无限制 CAA X X 无限制 无限制 无限制 可重复 无限制 无限制 无限制 AAAA X X 无限制 X 无限制 无限制 可重复 无限制 无限制 SRV X X 无限制 无限制 无限制 无限制 无限制 可重复 无限制 在提示冲突的时候,说明已经有对应的记录,不允许重复添加或者说不能添加对应的记录。说明:在 RR 值相同的情况下,同一条线路下,在几种不同类型的解析中不能共存( X 为不允许)1、X:在相同的 RR 值情况下,同一条线路下,不同类型的解析记录不允许共存。如:已经设置了 www.example.com 的 A 记录,则不允许再设置 www.example.com 的 CNAME 记录;2、无限制: 在相同的 RR 值情况下,同一条线路下,不同类型的解析记录可以共存。如:已经设置了 www.example.com 的 A 记录,则还可以再设置 www.example.com 的 MX 记录;3、可重复: 指在同一类型下,同一条线路下,可设置相同的多条 RR 值。如:已经设置了 www.example.com 的 A 记录,还可以再设置 www.example.com 的 A 记录。 如问题还未解决,请联系售后技术支持。 
    踩1 评论0
  • 提交了问题 2018-05-25

    404状态码

  • 回答了问题 2018-04-27

    MYSQL数据库binlog格式是怎么设置的,在配置参数里面没看见

    详细解答可以参考官方帮助文档 描述 用户可以修改实例参数,提交请求后,RDS将下达任务,新修改的参数应用到实例。如果所提交的参数中,有需要重启数据库的,RDS将重启数据库。必须满足以下条件,否则调用失败: 当前实例状态:使用中。 当前实例锁定模式:正常。 参数值有如下3类: [1-65535],表示数字范围,通过正则识别,从而提取出最小值,最大值。然后根据最小值和最大值对输入参数进行验证,另外,还须是整除因子的倍数。 [utf8|gbk|latin1],表示固定的取值规则,通过正则识别,从而提取出固定的取值。然后根据这些固定的取值对输入参数进行验证。 其它,这种情况符合正则表达式。 下达任务之前,RDS将会进行参数检查,步骤如下: 参数是否存在。 参数是否可修改。 参数是否合法。 若参数非法,RDS返回400错误,并返回非法的参数信息。类似: {'HttpStatusCode':400,'Code':'InvalidParameter.Format', 'Message':'Specified parameter is not valid.[auto_increment_increment:a,character_set_client:41]'} 请求参数 名称 类型 是否必须 描述 Action String 是 系统规定参数,取值:ModifyParameter DBInstanceId String 是 实例名。 Parameters String 是 参数及其值的JSON串,参数的值都是字符串类型,{“auto_increment”:”1”,“character_set_client”:”utf8”}。 Forcerestart String 否 true:强制重启(若修改的参数当中,有需要重启的参数,则必须传入true,否则修改将不生效);false:不强制重启。默认不强制重启。 返回参数 名称 类型 描述 详见公共参数。 请求示例 https://rds.aliyuncs.com/?Action=ModifyeParameter &DBInstanceId=riauvjz6zajfiq6ba1370329449201L &Parameters={'auto_increment':'1','character_set_client':'gbk'} & 返回示例 XML格式 542BB8D6-4268-45CC-A557-B03EFD7AB30A JSON格式 { 'RequestId':'542BB8D6-4268-45CC-A557-B03EFD7AB30A', }
    踩1 评论0
  • 提交了问题 2018-04-26

    不能访问网站

  • 提交了问题 2018-04-17

    更改一下发票信息如果处理

  • 提交了问题 2018-04-13

    现在网站打开速度非常慢

  • 提交了问题 2018-03-25

    转入万网之后怎么是冻结的

  • 回答了问题 2018-03-24

    临时域名有什么用

    详细解答可以参考官方帮助文档   临时域名可以通过【主机管理控制台】> 站点信息 中查看。什么是临时域名 临时域名是阿里云考虑到因特殊原因用户暂时无法使用自己的域名,免费为用户提供的一个临时的主机域名。 临时域名为已备案、已解析、已绑定的阿里云域名。使用注意事项 当使用临时域名访问网站的时候,会先弹出阿里云提供的临时页面。需要输入正确主机管理密码和验证。单击 确定访问 ,验证成功后方能访问。4个小时内不会弹出此页面。 临时域名仅供在网站备案成功前方便调试网站时使用,请勿用于其他用途。为了您的网站能够正常运行和推广,请尽快备案并绑定自己的域名。临时域名格式主机登录名. my3w.com,例如:Linux 主机:ug1111. my3w.com。Windows 主机:cw1111. my3w.com。临时域名弹出验证页面  
    踩1 评论0
  • 回答了问题 2018-03-12

    OSS向callbackUrl请求方法是POST

    详细解答可以参考官方帮助文档 用户只需要在发送给OSS的请求中携带相应的Callback参数,即能实现回调。 现在支持CallBack的API 接口有:PutObject、PostObject、CompleteMultipartUpload。 构造CallBack参数 CallBack参数是由一段经过base64编码的Json字串,用户关键需要指定请求回调的服务器URL(callbackUrl)以及回调的内容(callbackBody)。详细的Json字段如下: 字段 含义 选项 callbackUrl 文件上传成功后OSS向此url发送回调请求,请求方法为POST,body为callbackBody指定的内容。正常情况下,该url需要响应“HTTP/1.1 200 OK”,body必须为JSON格式,响应头Content-Length必须为合法的值,且不超过3MB。 支持同时配置最多5个url,以”;”分割。OSS会依次发送请求直到第一个返回成功为止。 如果没有配置或者值为空则认为没有配置callback。 支持HTTPS地址。 为了保证正确处理中文等情况,callbackUrl需做url编码处理,比如http://example.com/中文.php?key=value&中文名称=中文值 需要编码成 http://example.com/%E4%B8%AD%E6%96%87.php?key=value&%E4%B8%AD%E6%96%87%E5%90%8D%E7%A7%B0=%E4%B8%AD%E6%96%87%E5%80%BC 必选项 callbackHost 发起回调请求时Host头的值,只有在设置了callbackUrl时才有效。 如果没有配置 callbckHost,则会解析callbackUrl中的url并将解析出的host填充到callbackHost中 可选项 callbackBody 发起回调时请求body的值,例如:key=$(key)&etag=$(etag)&my_var=$(x:my_var)。 支持OSS系统变量、自定义变量和常量,支持的系统变量如下表所示 。自定义变量的支持方式在PutObject和CompleteMultipart中是通过callback-var来传递,在PostObject中则是将各个变量通过表单域来传递。 必选项 callbackBodyType 发起回调请求的Content-Type,支持application/x-www-form-urlencoded和application/json,默认为前者。 如果为application/x-www-form-urlencoded,则callbackBody中的变量将会被经过url编码的值替换掉,如果为application/json,则会按照json格式替换其中的变量。 可选项 示例json串如下 { 'callbackUrl':'121.101.166.30/test.php', 'callbackHost':'oss-cn-hangzhou.aliyuncs.com', 'callbackBody':'{\'mimeType\':${mimeType},\'size\':${size}}', 'callbackBodyType':'application/json' } { 'callbackUrl':'121.43.113.8:23456/index.html', 'callbackBody':'bucket=${bucket}&object=${object}&etag=${etag}&size=${size}&mimeType=${mimeType}&imageInfo.height=${imageInfo.height}&imageInfo.width=${imageInfo.width}&imageInfo.format=${imageInfo.format}&my_var=${x:my_var}' } 其中callbackBody中可以设置的系统变量有,其中imageInfo针对于图片格式,如果为非图片格式都为空: 系统变量 含义 bucket bucket object object etag 文件的etag,即返回给用户的etag字段 size object大小,CompleteMultipartUpload时为整个object的大小 mimeType 资源类型,如jpeg图片的资源类型为image/jpeg imageInfo.height 图片高度 imageInfo.width 图片宽度 imageInfo.format 图片格式,如jpg、png等 自定义参数 用户可以通过callback-var参数来配置自定义参数。 自定义参数是一个Key-Value的Map,用户可以配置自己需要的参数到这个Map。在OSS发起POST回调请求的时候,会将这些参数和上一节所述的系统参数一起放在POST请求的body中以方便接收回调方获取。 构造自定义参数的方法和callback参数的方法是一样的,也是以json格式来传递。该json字符串就是一个包含所有自定义参数的Key-Value的Map。 说明 用户自定义参数的Key一定要以x:开头,且必须为小写。否则OSS会返回错误。 假定用户需要设定两个自定义的参数分别为x:var1和x:var2,对应的值分别为value1和value2,那么构造出来的json格式如下: { 'x:var1':'value1', 'x:var2':'value2' } 构造回调请求 构造完成上述的callback和callback-var两个参数之后,一共有三种方式传给OSS。其中callback为必填参数,callback-var为可选参数,如果没有自定义参数的话可以不用添加callback-var字段。这三种方式如下: 在URL中携带参数。 在Header中携带参数。 在POST请求的body中使用表单域来携带参数。 说明 在使用POST请求上传Object的时候只能使用这种方式来指定回调参数。 这三种方式只能同时使用其中一种,否则OSS会返回InvalidArgument错误。 要将参数附加到OSS的请求中,首先要将上文构造的json字符串使用base64编码,然后按照如下的方法附加到OSS的请求中: 如果在URL中携带参数。把callback=[CallBack]或者callback-var=[CallBackVar]作为一个url参数带入请求发送。计算签名CanonicalizedResource时 ,将callback或者callback-var当做一个sub-resource计算在内 如果在Header中携带参数。把x-oss-callback=[CallBack]或者x-oss-callback-var=[CallBackVar]作为一个head带入请求发送。在计算签名CanonicalizedOSSHeaders时,将x-oss-callback-var和x-oss-callback计算在内。如下示例:PUT /test.txt HTTP/1.1 Host: callback-test.oss-test.aliyun-inc.com Accept-ncoding: identity Content-Length: 5 x-oss-callback-var: eyJ4Om15X3ZhciI6ImZvci1jYWxsYmFjay10ZXN0In0= User-Agent: aliyun-sdk-python/0.4.0 (Linux/2.6.32-220.23.2.ali1089.el5.x86_64/x86_64;2.5.4) x-oss-callback: eyJjYWxsYmFja1VybCI6IjEyMS40My4xMTMuODoyMzQ1Ni9pbmRleC5odG1sIiwgICJjYWxsYmFja0JvZHkiOiJidWNrZXQ9JHtidWNrZXR9Jm9iamVjdD0ke29iamVjdH0mZXRhZz0ke2V0YWd9JnNpemU9JHtzaXplfSZtaW1lVHlwZT0ke21pbWVUeXBlfSZpbWFnZUluZm8uaGVpZ2h0PSR7aW1hZ2VJbmZvLmhlaWdodH0maW1hZ2VJbmZvLndpZHRoPSR7aW1hZ2VJbmZvLndpZHRofSZpbWFnZUluZm8uZm9ybWF0PSR7aW1hZ2VJbmZvLmZvcm1hdH0mbXlfdmFyPSR7eDpteV92YXJ9In0= Host: callback-test.oss-test.aliyun-inc.com Expect: 100-Continue Date: Mon, 14 Sep 2015 12:37:27 GMT Content-Type: text/plain Authorization: OSS mlepou3zr4u7b14:5a74vhd4UXpmyuudV14Kaen5cY4= Test 如果需要在POST上传Object的时候附带回调参数会稍微复杂一点,callback参数要使用独立的表单域来附加,如下面的示例:--9431149156168 Content-Disposition: form-data; name='callback' eyJjYWxsYmFja1VybCI6IjEwLjEwMS4xNjYuMzA6ODA4My9jYWxsYmFjay5waHAiLCJjYWxsYmFja0hvc3QiOiIxMC4xMDEuMTY2LjMwIiwiY2FsbGJhY2tCb2R5IjoiZmlsZW5hbWU9JChmaWxlbmFtZSkmdGFibGU9JHt4OnRhYmxlfSIsImNhbGxiYWNrQm9keVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQifQ==如果拥有自定义参数的话,不能直接将callback-var参数直接附加到表单域中,每个自定义的参数都需要使用独立的表单域来附加,举个例子,如果用户的自定义参数的json为{ 'x:var1':'value1', 'x:var2':'value2' }那么POST请求的表单域应该如下:--9431149156168 Content-Disposition: form-data; name='callback' eyJjYWxsYmFja1VybCI6IjEwLjEwMS4xNjYuMzA6ODA4My9jYWxsYmFjay5waHAiLCJjYWxsYmFja0hvc3QiOiIxMC4xMDEuMTY2LjMwIiwiY2FsbGJhY2tCb2R5IjoiZmlsZW5hbWU9JChmaWxlbmFtZSkmdGFibGU9JHt4OnRhYmxlfSIsImNhbGxiYWNrQm9keVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQifQ== --9431149156168 Content-Disposition: form-data; name='x:var1' value1 --9431149156168 Content-Disposition: form-data; name='x:var2' value2同时可以在policy中添加callback条件(如果不添加callback,则不对该参数做上传验证)如:{ 'expiration': '2014-12-01T12:00:00.000Z', 'conditions': [ {'bucket': 'johnsmith' }, {'callback': 'eyJjYWxsYmFja1VybCI6IjEwLjEwMS4xNjYuMzA6ODA4My9jYWxsYmFjay5waHAiLCJjYWxsYmFja0hvc3QiOiIxMC4xMDEuMTY2LjMwIiwiY2FsbGJhY2tCb2R5IjoiZmlsZW5hbWU9JChmaWxlbmFtZSkiLCJjYWxsYmFja0JvZHlUeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIn0='}, ['starts-with', '$key', 'user/eric/'], ] } 发起回调请求 如果文件上传成功,OSS会根据用户的请求中的callback参数和自定义参数(callback-var参数),将特定内容以POST方式发送给应用服务器。 POST /index.html HTTP/1.0 Host: 121.43.113.8 Connection: close Content-Length: 181 Content-Type: application/x-www-form-urlencoded User-Agent: ehttp-client/0.0.1 bucket=callback-test&object=test.txt&etag=D8E8FCA2DC0F896FD7CB4CB0031BA249&size=5&mimeType=text%2Fplain&imageInfo.height=&imageInfo.width=&imageInfo.format=&x:var1=for-callback-test 返回回调结果 比如应用服务器端返回的回应请求为: HTTP/1.0 200 OK Server: BaseHTTP/0.3 Python/2.7.6 Date: Mon, 14 Sep 2015 12:37:27 GMT Content-Type: application/json Content-Length: 9 {'a':'b'} 返回上传结果 再给客户端的内容为: HTTP/1.1 200 OK Date: Mon, 14 Sep 2015 12:37:27 GMT Content-Type: application/json Content-Length: 9 Connection: keep-alive ETag: 'D8E8FCA2DC0F896FD7CB4CB0031BA249' Server: AliyunOSS x-oss-bucket-version: 1442231779 x-oss-request-id: 55F6BF87207FB30F2640C548 {'a':'b'} 需要注意的是,如果类似CompleteMultipartUpload这样的请求,在返回请求本身body中存在内容(如XMl格式的信息),使用上传回调功能后会覆盖原有的body的内容如{'a':'b'},希望对此处做好判断处理。 回调签名 用户设置callback参数后,OSS将按照用户设置的callbackUrl发送POST回调请求给用户的应用服务器。应用服务器收到回调请求之后,如果希望验证回调请求确实是由OSS发起的话,那么可以通过在回调中带上签名来验证OSS的身份。 生成签名 签名在OSS端发生,采用RSA非对称方式签名,私钥加密的过程为:authorization = base64_encode(rsa_sign(private_key, url_decode(path) + query_string + ‘\n’ + body, md5)) 说明 其中private_key为私钥,只有oss知晓,path为回调请求的资源路径,query_string为查询字符串,body为回调的消息体,所以签名过程由以下几步组成: 获取待签名字符串:资源路径经过url解码后,加上原始的查询字符串,加上一个回车符,加上回调消息体 RSA签名:使用秘钥对待签名字符串进行签名,签名的hash函数为md5 将签名后的结果做base64编码,得到最终的签名,签名放在回调请求的authorization头中 如下例:POST /index.php?id=1&index=2 HTTP/1.0 Host: 121.43.113.8 Connection: close Content-Length: 18 authorization: kKQeGTRccDKyHB3H9vF+xYMSrmhMZjzzl2/kdD1ktNVgbWEfYTQG0G2SU/RaHBovRCE8OkQDjC3uG33esH2txA== Content-Type: application/x-www-form-urlencoded User-Agent: ehttp-client/0.0.1 x-oss-pub-key-url: aHR0cDovL2dvc3NwdWJsaWMuYWxpY2RuLmNvbS9jYWxsYmFja19wdWJfa2V5X3YxLnBlbQ== bucket=yonghu-testpath为/index.php,query_string为?id=1&index=2,body为bucket=yonghu-test,最终签名结果为kKQeGTRccDKyHB3H9vF+xYMSrmhMZjzzl2/kdD1ktNVgbWEfYTQG0G2SU/RaHBovRCE8OkQDjC3uG33esH2txA== 验证签名 验证签名的过程即为签名的逆过程,由应用服务器验证,过程如下:Result = rsa_verify(public_key, md5(url_decode(path) + query_string + ‘\n’ + body), base64_decode(authorization))字段的含义与签名过程中描述相同,其中public_key为公钥, authorization为回调头中的签名,整个验证签名的过程分为以下几步: 回调请求的x-oss-pub-key-url头保存的是公钥的url地址的base64编码,因此需要对其做base64解码后获取到公钥,即public_key = urlopen(base64_decode(x-oss-pub-key-url头的值))这里需要注意,用户需要校验x-oss-pub-key-url头的值必须以http://gosspublic.alicdn.com/或者https://gosspublic.alicdn.com/开头,目的是为了保证这个publickey是由OSS颁发的。 获取base64解码后的签名signature = base64_decode(authorization头的值) 获取待签名字符串,方法与签名一致sign_str = url_decode(path) + query_string + ‘\n’ + body 验证签名result = rsa_verify(public_key, md5(sign_str), signature) 以上例为例: 获取到公钥的url地址,即aHR0cDovL2dvc3NwdWJsaWMuYWxpY2RuLmNvbS9jYWxsYmFja19wdWJfa2V5X3YxLnBlbQ==经过base64解码后得到http://gosspublic.alicdn.com/callback_pub_key_v1.pem 签名头kKQeGTRccDKyHB3H9vF+xYMSrmhMZjzzl2/kdD1ktNVgbWEfYTQG0G2SU/RaHBovRCE8OkQDjC3uG33esH2txA==做base64解码(由于为非打印字符,无法显示出解码后的结果) 获取待签名字符串,即url_decode(“index.php”) + “?id=1&index=2” + “\n” + “bucket=yonghu-test”,并做md5 验证签名 应用服务器示例 以下为一段python示例,演示了一个简单的应用服务器,主要是说明验证签名的方法,此示例需要安装M2Crypto库import httplib import base64 import md5 import urllib2 from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer from M2Crypto import RSA from M2Crypto import BIO def get_local_ip(): try: csock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) csock.connect(('8.8.8.8', 80)) (addr, port) = csock.getsockname() csock.close() return addr except socket.error: return '' class MyHTTPRequestHandler(BaseHTTPRequestHandler): ''' def log_message(self, format, *args): return ''' def do_POST(self): #get public key pub_key_url = '' try: pub_key_url_base64 = self.headers['x-oss-pub-key-url'] pub_key_url = pub_key_url_base64.decode('base64') if not pub_key_url.startswith('http://gosspublic.alicdn.com/') and not pub_key_url.startswith('https://gosspublic.alicdn.com/'): self.send_response(400) self.end_headers() return url_reader = urllib2.urlopen(pub_key_url) #you can cache it pub_key = url_reader.read() except: print 'pub_key_url : ' + pub_key_url print 'Get pub key failed!' self.send_response(400) self.end_headers() return #get authorization authorization_base64 = self.headers['authorization'] authorization = authorization_base64.decode('base64') #get callback body content_length = self.headers['content-length'] callback_body = self.rfile.read(int(content_length)) #compose authorization string auth_str = '' pos = self.path.find('?') if -1 == pos: auth_str = urllib2.unquote(self.path) + '\n' + callback_body else: auth_str = urllib2.unquote(self.path[0:pos]) + self.path[pos:] + '\n' + callback_body print auth_str #verify authorization auth_md5 = md5.new(auth_str).digest() bio = BIO.MemoryBuffer(pub_key) rsa_pub = RSA.load_pub_key_bio(bio) try: result = rsa_pub.verify(auth_md5, authorization, 'md5') except: result = False if not result: print 'Authorization verify failed!' print 'Public key : %s' % (pub_key) print 'Auth string : %s' % (auth_str) self.send_response(400) self.end_headers() return #do something accoding to callback_body #response to OSS resp_body = '{'Status':'OK'}' self.send_response(200) self.send_header('Content-Type', 'application/json') self.send_header('Content-Length', str(len(resp_body))) self.end_headers() self.wfile.write(resp_body) class MyHTTPServer(HTTPServer): def __init__(self, host, port): HTTPServer.__init__(self, (host, port), MyHTTPRequestHandler) if '__main__' == __name__: server_ip = get_local_ip() server_port = 23451 server = MyHTTPServer(server_ip, server_port) server.serve_forever()其它语言实现的应用服务器如下: Java版本: 下载地址:点击这里 运行方法:解压包运行java -jar oss-callback-server-demo.jar 9000(9000就运行的端口,可以自己指定) PHP版本: 下载地址:点击这里 运行方法:部署到Apache环境下,因为PHP本身语言的特点,取一些数据头部会依赖于环境。所以可以参考例子根据所在环境修改。 Python版本: 下载地址:点击这里 运行方法:解压包直接运行python callback_app_server.py,运行该程序需要安装rsa的依赖。 C#版本: 下载地址:点击这里 运行方法:解压后参看 README.md。 Go版本: 下载地址:点击这里 运行方法:解压后参看 README.md。 Go版本: 下载地址:点击这里 运行方法:解压后参看 README.md。 Ruby版本: 下载地址:点击这里 运行方法: ruby aliyun_oss_callback_server.rb 特别须知 如果传入的callback或者callback-var不合法,则会返回400错误,错误码为”InvalidArgument”,不合法的情况包括以下几类: PutObject()和CompleteMultipartUpload()接口中url和header同时传入callback(x-oss-callback)或者callback-var(x-oss-callback-var)参数 callback或者callback-var(PostObject()由于没有callback-var参数,因此没有此限制,下同)参数过长(超过5KB) callback或者callback-var没有经过base64编码 callback或者callback-var经过base64解码后不是合法的json格式 callback参数解析后callbackUrl字段包含的url超过限制(5个),或者url中传入的port不合法,比如{'callbackUrl':'10.101.166.30:test', 'callbackBody':'test'} callback参数解析后callbackBody字段为空 callback参数解析后callbackBodyType字段的值不是”application/x-www-form-urlencoded”或者”application/json” callback参数解析后callbackBody字段中变量的格式不合法,合法的格式为${var} callback-var参数解析后不是预期的json格式,预期的格式应该为{'x:var1':'value1','x:var2':'value2'...} 如果回调失败,则返回203,错误码为”CallbackFailed”,回调失败只是表示OSS没有收到预期的回调响应,不代表应用服务器没有收到回调请求(比如应用服务器返回的内容不是json格式),另外,此时文件已经成功上传到了OSS 应用服务器返回OSS的响应必须带有Content-Length的Header,Body大小不要超过1MB。 Callback支持的地域 Callback目前支持的地域如下:华北 2(北京)、华东 1(杭州)、华北 1(青岛)、华东 2(上海)、上海金融云、华南 1(深圳)、香港、华北 5(呼和浩特)、华北 3(张家口)、中东东部 1(迪拜)、亚太东北 1(日本)、欧洲中部 1(法兰克福)、亚太东南 1(新加坡)、美国东部 1(弗吉尼亚)、美国西部 1(硅谷)、亚太东南 2 (悉尼)以及亚太东南 3(吉隆坡)。
    踩1 评论0
  • 回答了问题 2018-02-27

    负载均衡是用公网还是私网呢

    详细解答可以参考官方帮助文档 在使用负载均衡前,您需要根据您的业务确定负载均衡的监听类型、网络类型等。 规划负载均衡实例的地域 阿里云提供包括华北、华东、华南、亚太东南、亚太东北、欧洲中部、美国东部、美国西部、香港、中东东部在内的不同地域的负载均衡服务。 为了提供更加稳定可靠的负载均衡服务,阿里云负载均衡已在各地域部署了多可用区以实现同地域下的跨机房容灾。此外,您也可以在不同地域创建多个负载均衡实例,通过DNS轮询的方式对外提供服务,从而提高跨地域的可用性。 在选择地域时,请注意: 为了减少延迟并提高下载速度,建议选择离您客户最近的地域。 由于负载均衡不支持跨地域部署,因此应选择与后端ECS实例相同的地域。 选择负载均衡实例的类型(公网或私网) 根据您的业务类型,确定负载均衡的实例类型。负载均衡实例创建后,系统会根据实例类型分配一个公网服务地址或私网服务地址。 公网负载均衡实例仅提供公网IP,可以通过Internet访问负载均衡服务。 如果您要创建公网类型的负载均衡实例,还需根据具体业务特点确定计费方式: 按流量计费:适用于波峰波谷效应明显的业务。 按带宽计费:适用于带宽较为平稳的业务。 私网负载均衡实例仅提供阿里云私网IP,只能通过阿里云内部网络访问该负载均衡服务,无法从Internet访问。私网类型的负载均衡实例不收取费用。 选择监听协议 负载均衡提供四层(TCP协议和UDP协议)和七层(HTTP协议和HTTPS协议)监听。 四层监听将请求直接转发给后端服务器,不会修改标头。客户端请求到达负载均衡监听后,负载均衡服务器会使用监听中配置的后端端口与后端ECS建立TCP连接。 七层监听原理上是反向代理的一种实现。客户端请求到达负载均衡监听后,负载均衡服务器会通过与后端ECS建立TCP连接,即再次通过新TCP连接HTTP协议访问后端,而不是直接转发报文到后端ECS。 由于七层监听比四层监听在底层实现上多了一个Tengine处理环节,因此,七层监听性能没有四层好。此外,客户端端口不足、后端服务器连接过多等场景也可能导致七层服务性能不高,如果您对性能有很高的要求,建议您使用四层监听。 准备后端服务器 您需要在负载均衡实例中添加ECS来处理前端监听转发的请求。在创建负载均衡前,需要创建好ECS实例并部署相关应用。创建ECS时,请注意: ECS实例的地域和可用区 确保ECS实例的地域和负载均衡实例的地域相同。此外,建议您将ECS部署在不同的可用区内,提高本地可用性。 ECS配置 在ECS上部署好应用后,不需要再进行特别的配置。但如果您要配置一个四层监听(TCP协议或UDP协议),并且ECS使用的是Linux系统,确保 net.ipv4.conf文件中的以下三个参数的值为0: net.ipv4.conf.default.rp_filter = 0 net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.eth0.rp_filter = 0 ECS部署 目前负载均衡实例后端可配置的ECS数量没有限制。但是,为了保证对外服务的稳定与高效,建议您根据业务分类或应用服务的模块划分,将提供不同服务或执行不同任务的应用服务器ECS添加到不同的负载均衡实例中。
    踩1 评论0
  • 回答了问题 2018-01-23

    无法创建经典网络环境下的服务器了

    详细解答可以参考官方帮助文档 为了优化和提升网络体验,阿里云于 2016 年 6 月 16 日 12:00 启动了切换到专有网络策略,即截止到实施时间点在实施地域没有经典网络类型ECS实例(包含运行中或者已停止的)的客户,只能购买专有网络(VPC)类型的ECS产品,不能再购买经典网络类型的ECS实例。该策略会分阶段,按照地域段实施。 地域实施时间点 2016 年 12 月 1 日 12:00 在华南 1 实施。 2017 年 2 月 15 日 12:00 在华北 2、香港、亚太东南 1(新加坡)、美国西部(硅谷)实施。 2017 年 3 月 7 日 12:00 在华东 1 实施。 2017 年 3 月 31 日 12:00 在华东 1 、华北 1 实施。 说明 该策略只影响上述已实施地域。您仍可在其他未切换地域同时使用经典网络和专有网络。 具体策略 策略 1:截止到2016 年 6 月 1 日 00:00时间点,在阿里云有经典网络类型的ECS 实例(运行中或者已停止的)的客户,不受切换到专有网络策略影响。只要该地域有库存,就可以继续购买经典网络和专有网络这两种网络类型的 ECS 实例; 如果不满足策略 1,在实施的地域,对应的实施时间之前,您的账号下没有经典网络类型的 ECS 实例(运行中或者已停止的),就只能购买专有网络的 ECS 实例,不能购买经典网络实例; 如果不满足策略 1,在实施的地域,对应的实施时间之前,您的账号下有经典网络类型的 ECS 实例(运行中或者已停止的),只要在实施地域有库存,就可以继续购买经典网络和专有网络两种网络类型的 ECS 实例。 常见问题 Q:阿里云为什么要做这个调整? A:因为专有网络 VPC 更安全,性能更高,体验会更好,用户对网络管理更灵活,支持混合云的场景,代表了未来的发展方向。 Q:除上述地域,其它地域什么时候生效? A:其它地域会在 2017 年 3 月后执行,阿里云会另行通告。 Q:新用户只能购买专有网络类型的 ECS/负载均衡/RDS,对于其它云产品,还支持购买两种网络类型吗? A:支持。但是,建议您购买其它云产品也都购买专有网络类型,否则会对您的使用造成影响,后续其它云产品也会对新用户默认都切换到专有网络 VPC。 Q:如果只能购买专有网络云产品,是否会影响我的使用?比如是否会影响和其它云产品通信? A:正常情况下不会。因为阿里云的云产品绝大部分都支持专有网络 VPC。我们也会尽量确保生效地域的云产品都接入了专有网络 VPC。 Q:如何查询我在各地域能购买哪种网络类型的云产品? A:暂时不能查看,我们会尽快支持开放 OpenAPI 和控制台用户查看。 Q:会不会购买到错误网络类型的云产品? A:由于初期新用户只能购买专有网络的 ECS/负载均衡/RDS 云产品,用户有可能购买到经典网络的其它云产品。请在购买的时候注意网络类型的选择,如购买错误可能会出现使用问题。 Q:购买到了错误网络类型的云产品怎么办? A:可以通过云产品提供的网络切换功能进行网络切换,具体操作请参考各产品控制台。如遇到没有提供网络切换的产品请提工单给阿里云处理(云服务器 ECS 除外)。
    踩1 评论0
  • 回答了问题 2018-01-19

    OSS是否支持bucket作为三级域名的访问方式?

    详细解答可以参考官方帮助文档 OSS目前已不支持二级域名访问,仅支持三级域名的访问。三级域名外链访问:http://bucketname.oss.aliyuncs.com/object例如:http://cloudstorage.oss.aliyuncs.com/pujing.jpgOSS域名绑定(CNAME)功能目前仅支持OSS以三级域名访问方式进行绑定。即您的OSS访问方式为(Bucket name).${region}.aliyuncs.com。具体region的写法请参考每个区域域名表示:点击查看域名绑定操作:点击查看域名绑定视频教程:点击查看 如果问题还存在,请联系阿里云售后支持。
    踩1 评论0
  • 回答了问题 2018-01-08

    云盾DDOS服务协议

    详细解答可以参考官方帮助文档 阿里云各产品服务协议集锦如下: 云服务器 ECS服务协议 云数据库 RDS服务协议 对象存储 OSS服务协议 负载均衡服务协议 CDN服务协议 云盾DDOS服务协议 弹性公网IP(EIP)服务协议 云数据库Memcache版服务协议 阿里云数据库Redis版服务协议 服务器安全托管服务协议 补丁管理服务协议 云解析(企业版)服务协议 VPC服务协议
    踩1 评论0
正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息