游客pf3zqozwxremg_个人页

游客pf3zqozwxremg
0
1
0

个人介绍

暂无个人介绍

擅长的技术

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

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

云产品技术能力:

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

阿里云技能认证

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

    有没有移动端上传回调ios的demo

    详细解答可以参考官方帮助文档 本文讲解如何搭建一个基于OSS的移动应用数据直传服务并设置上传回调。 背景 快速搭建移动应用直传服务介绍了如何快速搭建一个基于OSS的移动应用数据直传服务。但这一方案有个问题:对于Android/iOS移动应用来说,只需要申请一次STS凭证,就能多次使用该STS凭证上传数据到OSS。这就导致应用服务器无法得知用户上传了哪些数据 ,作为该app的开发者,就没法对应用上传数据进行管理。为此OSS提供了上传回调方案。 原理介绍 上传回调的原理如下图所示: OSS在收到Android/iOS移动应用的数据(上图中步骤5)和在返回用户上传结果(上图中步骤6)之间,触发一个上传回调任务,即第上图中步骤5.5,先回调用户服务器,得到应用服务器返回的内容,然后将此内容返回给Android/iOS移动应用。详情请参见Callback API文档。 上传回调的作用 通过上传回调让用户应用服务器知道当前上传文件的基本信息。 返回的基本信息可以包含下表中一个或多个变量,返回内容的格式在Android/iOS上传时指定。 系统变量 含义 bucket 移动应用上传文件到OSS的哪个存储空间 object 移动应用上传文件到OSS后保存的文件名 etag 该上传的文件的ETag,即返回给用户的etag字段 size 上传文件的大小 mimeType 资源类型 imageInfo.height 图片高度 imageInfo.width 图片宽度 imageInfo.format 图片格式,如jpg、png等 通过上传回调设定自定义参数,达到信息传递的目的。 假如您是一个开发者,您想知道当前用户所使用的app版本、当前用户所在的操作系统版本、用户的GPS信息、用户的手机型号。您可以在Android/iOS端上传文件时,指定自定义参数,如下所示: x:version:指定APP版本 x:system:指定操作系统版本 x:gps:指定GPS信息 x:phone:指定手机型号 Android/iOS移动应用上传文件到OSS时附带上述参数,然后OSS把这些参数放到CallbackBody里发给应用服务器。这样应用服务器就能收到这些信息,达到信息传递的目的。 上传回调对应用服务器的要求 您必须部署一个可以接收POST请求的服务,这个服务必须有公网地址,如www.abc.com/callback.php,或者外网IP地址。 您必须给OSS正确的返回,返回格式必须是JSON格式,内容自定义。OSS会把应用服务器返回的内容,原封不动地返回给Android/iOS移动应用。详情请参见Callback API文档。注意 在移动应用端设置上传回调 要让OSS在接收上传请求时触发上传回调,移动应用在构造上传请求时必须把如下内容指定到上传请求里面: 要回调到哪个服务器(callbackUrl),如 http://abc.com/callback.php,这个地址必须是公网能够访问的。 上传回调给应用服务器的内容(callbackBody),可以是上述OSS返回应用服务器系统变量的一个或者多个。 假如您的用户服务器上传回调地址是http://abc.com/callback.php。您想获取手机上传的文件名称、文件的大小,并且定义了x:phone变量是指手机型号,x:system变量是指操作系统版本。 上传回调示例分以下两种: iOS指定上传回调示例:OSSPutObjectRequest * request = [OSSPutObjectRequest new]; request.bucketName = @''; request.objectKey = @''; request.uploadingFileURL = [NSURL fileURLWithPath:@']; // 设置回调参数 request.callbackParam = @{ @'callbackUrl': @'http://abc.com/callback.php', @'callbackBody': @'filename=${object}&size=${size}&photo=${x:photo}&system=${x:system}' }; // 设置自定义变量 request.callbackVar = @{ @'x:phone': @'iphone6s', @'x:system': @'ios9.1' }; Android指定上传回调示例:PutObjectRequest put = new PutObjectRequest(testBucket, testObject, uploadFilePath); ObjectMetadata metadata = new ObjectMetadata(); metadata.setContentType('application/octet-stream'); put.setMetadata(metadata); put.setCallbackParam(new HashMap() { { put('callbackUrl', 'http://abc.com/callback.php'); put('callbackBody', 'filename=${object}&size=${size}&photo=${x:photo}&system=${x:system}'); } }); put.setCallbackVars(new HashMap() { { put('x:phone', 'IPOHE6S'); put('x:system', 'YunOS5.0'); } }); 应用服务器收到的回调请求 根据设定的不同URL和回调内容,应用服务器收到的回调请求会所不同,示例如下: POST /index.html HTTP/1.0 Host: 121.43.113.8 Connection: close Content-Length: 81 Content-Type: application/x-www-form-urlencoded User-Agent: ehttp-client/0.0.1 authorization: kKQeGTRccDKyHB3H9vF+xYMSrmhMZjzzl2/kdD1ktNVgbWEfYTQG0G2SU/RaHBovRCE8OkQDjC3uG33esH2txA== x-oss-pub-key-url: aHR0cDovL2dvc3NwdWJsaWMuYWxpY2RuLmNvbS9jYWxsYmFja19wdWJfa2V5X3YxLnBlbQ== filename=test.txt&size=5&photo=iphone6s&system=ios9.1 更多内容请参见Callback API文档。 应用服务器判断回调请求是否来自OSS 如果您的回调服务器被人恶意攻击了,例如恶意回调您的应用服务器,导致应用服务器收到一些非法的请求,影响正常逻辑,此时您就需要判断回调请求是否来自OSS。 判断的方法主要是根据OSS给应用服务器返回的头部内容中 x-oss-pub-key-url和authorization这两个参数进行RSA校验。只有通过RSA校验才能说明这个请求是来自OSS。本文提供的示例程序有实现的示例供您参考。 应用服务器收到回调请求后的处理 应用服务器在校验这个请求是来自OSS后,指定回调给应用服务器的内容格式,如 filename=test.txt&size=5&photo=iphone6s&system=ios9.1 应用服务器就可以根据OSS的返回内容,解析得到自己想要的数据。得到这个数据后,应用服务器可以把数据存放起来,方便后续管理。 OSS如何处理应用服务器的返回内容 有两种情况: OSS将回调请求发送给应用服务器,但是应用服务器接收失败或者访问不通,OSS会返回给Android/iOS移动应用203的状态码,但是数据已经存放到OSS上了。 应用服务器接收到OSS的回调请求,并且正确返回了,OSS会返回给Android/iOS移动应用状态码200, 并把应用服务器返回给OSS的内容原封不动地返回给Android/iOS移动应用。 示例程序下载 示例程序只是完成了如何检查应用服务器收到的签名, 您需要自行增加对应用服务器收到回调内容的格式解析 。 Java: 下载地址:单击这里。 运行方法:解压后运行java -jar oss-callback-server-demo.jar 9000。9000是运行的端口,可以自己指定。 说明 这个jar例子在java 1.7运行通过,如果有问题可以自己依据提供的代码进行修改。这是一个maven项目。 PHP: 下载地址:单击这里 运行方法:将解压包部署到Apache环境下,因为PHP本身语言的特点,某些数据头部的获取会依赖于环境。请参考例子根据实际环境进行修改。 Python: 下载地址:单击这里。 运行方法:解压后直接运行python callback_app_server.py即可,程序自实现了一个简单的http server,运行该程序可能需要安装rsa的依赖。 Ruby版本: 下载地址:单击这里。 运行方法: ruby aliyun_oss_callback_server.rb。
    踩1 评论0
  • 回答了问题 2018-06-05

    android sdk可以通过maven使用吗?怎么设置?

    详细解答可以参考官方帮助文档Android Studio方式(推荐) Maven依赖dependencies { compile 'com.aliyun.dpa:oss-android-sdk:+' compile 'com.squareup.okhttp3:okhttp:3.4.1' compile 'com.squareup.okio:okio:1.9.0'}源码编译jar包可以clone下工程源码之后,运行gradle命令打包: # clone工程$ git clone https://github.com/aliyun/aliyun-oss-android-sdk.git# 进入目录$ cd aliyun-oss-android-sdk/oss-android-sdk/# 执行打包脚本,要求jdk 1.7$ ../gradlew releaseJar# 进入打包生成目录,jar包生成在该目录下$ cd build/libs && ls直接引入上面编译好的jar包将aliyun-oss-sdk-android-x.x.x.jar、okhttp-3.x.x.jar 和 okio-1.x.x.jar 3 个 jar 包导入 libs 目录。 权限设置以下是 OSS Android SDK 所需要的 Android 权限,请确保您的 AndroidManifest.xml 文件中已经配置了这些权限,否则,SDK 将无法正常工作。 android:name='android.permission.INTERNET' /> android:name='android.permission.ACCESS_NETWORK_STATE' /> android:name='android.permission.ACCESS_WIFI_STATE' /> android:name='android.permission.WRITE_EXTERNAL_STORAGE' /> android:name='android.permission.MOUNT_UNMOUNT_FILESYSTEMS' />混淆设置在混淆配置中加入: -keep class com.alibaba.sdk.android.oss.** { *; }-dontwarn okio.**-dontwarn org.apache.commons.codec.binary.**
    踩1 评论0
  • 回答了问题 2018-04-29

    RDS同步到Aliyun Ecsshang自建MySQL实例,并支持增量同步

    详细解答可以参考官方帮助文档使用 数据传输服务 DTS 可以将本地 MySQL 实例的数据迁移到 RDS for MySQL 实例。数据传输服务 DTS (以下简称 DTS) 提供的增量数据同步功能,可以实现在本地应用不停服的情况下,平滑完成 MySQL 数据的迁移工作。 本小节简单介绍使用 DTS 进行本地 MySQL->RDS for MySQL 数据迁移的任务配置流程。 迁移步骤对于本地 MySQL->RDS for MySQL 的数据迁移,DTS 支持结构迁移、全量数据迁移及增量数据迁移,这个迁移类型的功能及限制如下: 结构迁移 数据传输会将迁移对象的结构定义迁移到目标实例。目前 DTS 支持结构迁移的对象有:表、视图、触发器、存储过程、存储函数。 全量数据迁移 全量迁移将本地 MySQL 实例的存量数据全部迁移到目标 RDS for MySQL 实例。 如果用户只进行全量数据迁移,那么迁移过程中本地 MySQL 实例新增的业务写入不会被同步到目标 RDS for MySQL 实例。 增量数据迁移 增量数据迁移会将全量数据迁移过程中,本地 MySQL 实例的增量变更数据同步到目标 RDS for MySQL 实例,增量数据迁移可以实现本地 MySQL 实例在迁移过程中产生的增量数据被实时同步到目标库,最终实现本地 MySQL 实例同目标 RDS for MySQL 实例进入动态数据同步的过程。 迁移限制 迁移过程中,不支持 DDL 操作结构迁移不支持 event 的迁移对于MySQL的浮点型float/double,DTS通过round(column,precision)来读取该列的值,若列类型没有明确定义其精度,对于float,精度为38位,double类型,精度为308,请先确认DTS的迁移精度是否符合业务预期如果使用了对象名映射功能后,依赖这个对象的其他对象可能迁移失败当选择增量迁移时,源端的本地 MySQL 实例需要按照要求开启 binlog当选择增量迁移时,源库的 binlog_format 要为 row当选择增量迁移且源 MySQL 如果为 5.6 及以上版本时,它的 binlog_row_image 必须为 full当选择增量迁移时,增量迁移过程中如果源MySQL实例出现因实例跨机迁移或跨机重建等导致的binlog 文件ID乱序,可能导致增量迁移数据丢失 迁移权限要求当使用 DTS 进行本地 MySQL->RDS for MySQL迁移时,在不同迁移类型,对源端和目标端 MySQL 实例的迁移帐号权限要求如下: 迁移类型 结构迁移 全量迁移 增量迁移 本地 MySQL 实例 select select superselectreplication slavereplication client 目标端 RDS for MySQL 实例 读写权限 读写权限 读写权限 迁移流程DTS 在进行本地 MySQL->RDS for Mysql 数据迁移时,为了解决对象间的依赖关系,提高迁移成功率。结构对象及数据的迁移顺序如下: 结构对象:表、视图的迁移全量数据迁移结构对象:存储过程、函数、触发器、外键的迁移增量数据迁移 如果任务没有选择增量数据迁移,那么当全量数据迁移完成后,任务列表中的迁移进度为:结构迁移 100%,全量迁移 100%,迁移状态为“迁移中”。此时迁移任务正在进行步骤(3) 中的对象的迁移。此时,请勿手动结束任务,否则会造成迁移数据丢失。 迁移任务配置下面详细介绍使用 DTS 将本地 MySQL 实例中的数据迁移到阿里云 RDS for MySQL 实例的任务配置流程。 RDS for MySQL 实例数据库创建在数据迁移过程中,如果待迁移的数据库在目标 RDS 实例中不存在,那么 DTS 自动会创建。但是对于如下两种情况,用户需要在配置迁移任务之前,手动创建数据库。 数据库名称不符合 RDS 定义规范(由小写字母、数字、下划线、中划线组成,字母开头,字母或数字结尾,最长 64 个字符)。待迁移数据库,在源端本地 MySQL 和目标端 RDS for MySQL 实例中名称不同。 对于这两种情况,用户需要在配置迁移任务之前,先在 RDS 控制台完成数据库创建。具体参考 RDS使用手册 - 创建数据库”。 迁移帐号创建迁移任务配置,需要提供本地 MySQL 数据库及目标 RDS for MySQL 实例的迁移账号。迁移账号所需权限详见上文的 迁移权限要求 部分。 如果源端 MySQL 实例迁移账号尚未创建,那么您可以参考 Grant 语法说明,创建满足权限要求的迁移账号。 如果目标端 RDS for MySQL 实例迁移账号创建,那么您可以参考 RDS 账号创建流程,创建对待迁移数据库有读写权限的迁移账号。 其他准备工作如果需要进行增量迁移,那么需要确认源库的 binlog 是否开启,格式是否满足要求。具体确认项如下。 确认源库的 binlog 是否开启。 如果这里面查询出来的 log_bin=OFF,则说明源库没有开启 binlog,这个时候如果需要使用增量迁移的话,需要修改本地 MySQL 的 binlog 配置,打开 binlog 日志。 开启二进制日志,修改 log_bin=mysql_bin。设置 binlog 模式为 row,修改 binlog_format=row。配置 server_id 大于 1,即 server_id=某一个大于 1 的整数。如果版本为 5.6,修改 binlog_row_image=full。修改完成后,重启 MySQL 进程。 确认源库的 binlog 格式为 row 模式。 使用上面的命令确认本地 MySQL 的 binlog 格式是否为 ROW,如果查询出来的结果不为 ROW 的话,那么通过如下的参数设置命令将模式修改为 ROW。 当修改完成后,建议将源库上已有的连接 KILL 掉,并且重新连接,否则可能出现其他的连接依然使用 statement 格式记录 binlog 日志。 当本地 MySQL 版本大等于 5.6.2 时,确认源库的 binlog_row_image=full。 如果查询出来的结果不为 FULL 的话,那么通过如下的参数设置命令将其修改为 FULL。 迁移任务配置当数据库、迁移账号都创建完成后,就可以开始配置迁移任务了。下面详细介绍下具体的配置步骤。 进入 数据传输 DTS 控制台,点击右上角的 创建迁移任务,开始任务配置。本地 MySQL 实例及目标 RDS for MySQL 实例连接信息配置。 在这个步骤中,主要配置迁移任务名称,迁移源实例及目标实例连接信息。其中: 任务名称 默认情况下,DTS 为每个任务自动生成一个任务名称。任务名称没有唯一性要求,您可以修改这个名称,为任务配置一个具有业务意义的名称,便于后续的任务识别。 源实例连接信息 实例类型:选择 有公网 IP 的自建数据库数据库类型:选择 MySQL主机名或 IP 地址:配置本地 MySQL 数据库实例的访问地址,这个地址必须为公网访问方式端口:MySQL 实例监听端口账号:MySQL 实例访问账号密码:上面指定的 MySQL 访问账号对应的密码 目标 RDS for MySQL 实例连接信息。 实例类型:选择 RDS 实例RDS 实例 ID: 配置迁移的目标 RDS 实例的实例 ID。 DTS 支持经典网络、VPC 网络的 RDS for MySQL 实例数据库账号:RDS for MySQL 实例的连接账号数据库密码:上面指定的数据库账号对应的数据库密码 迁移对象及迁移类型配置。 迁移类型 DTS 支持 结构迁移、全量数据迁移、增量数据迁移。 如果需要进行不停机迁移,那么需要选择:结构迁移+全量数据迁移+增量数据迁移。 如果只进行全量迁移,那么需要选择:结构迁移+全量数据迁移。 迁移对象 迁移对象,需要选择您要迁移的对象。迁移对象选择的粒度可以为:库、表、列三个粒度。 默认情况下,对象迁移到 RDS for MySQL 实例后,对象名跟本地 MySQL 实例一致。如果您迁移的对象在源实例跟目标实例上名称不同,那么需要使用 DTS 提供的对象名映射功能,详细使用方式可以参考 库表列映射。 当配置完迁移对象及迁移类型后,即进入任务启动前的预检查步骤 预检查。 在迁移任务正式启动之前,会先进行前置预检查,只有预检查通过后,才能成功启动迁移。 如果预检查失败,那么可以点击具体检查项后的按钮,查看具体的失败详情,并根据失败原因修复后,重新进行预检查。 启动迁移任务。 当预检查通过后,我们可以启动迁移任务,任务启动后,可以到任务列表中查看任务具体的迁移状态及进度。 增量数据迁移是个动态同步的过程,所以建议在增量迁移达到无延迟状态时,在目标数据库上进行业务验证,如果验证成功,那么可以停掉迁移任务,然后将业务切换到目标数据库。 至此,完成将本地 MySQL 数据库实例到阿里云 RDS for MySQL 的数据迁移任务配置。
    踩1 评论0
  • 提交了问题 2018-04-24

    考虑到安全性,不能将ak sk都存放在服务器,有什么推荐的方式吗

  • 提交了问题 2018-04-08

    数据库密码的修改流程

  • 提交了问题 2018-03-31

    cc系统已对此账号进行了封禁处理

  • 提交了问题 2018-03-18

    企业邮箱频繁出现异地登陆怎么办

  • 提交了问题 2018-03-10

    安装wordpress

  • 回答了问题 2018-02-04

    网站上传了无法访问

    详细解答可以参考官方帮助文档 问题描述 原因分析 解决方法 1. 问题描述:         客户在上传网站程序 DEDECMS 是安装报乱码,如图:           2. 原因分析: PHP 版本太高,无法解析程序文件.  FTP 上传时没有使用二进制上传. 3. 解决办法: 切换 PHP 的版本为5.5以下,操作方法如下: 登录 控制面板  > 高级环境设置   >  PHP 版本设置 , 将 PHP 版本调整5.5以下,如图: 程序上传时选择二进制上传, 以 FileZilla 为例, 设置方法如下: 调整以上两点,乱码问题完美解决。   如果问题还未能解决,请联系售后技术支持。          
    踩1 评论0
  • 回答了问题 2018-01-05

    网页上传附件到服务器,服务器上传到oss,网络传输速度慢,怎么解决

    详细解答可以参考官方帮助文档 本教程介绍如何在Web端通过表单上传方式直接上传数据到OSS。 背景 每个OSS的用户都会用到上传服务。Web端常见的上传方法是用户在浏览器或app端上传文件到应用服务器,然后应用服务器再把文件上传到OSS。 和数据直传到OSS相比,以上方法有三个缺点: 上传慢。先上传到应用服务器,再上传到OSS,网络传送比直传到OSS多了一倍。如果直传到OSS,不通过应用服务器,速度将大大提升,而且OSS采用BGP带宽,能保证各地各运营商的速度。 扩展性差。如果后续用户多了,应用服务器会成为瓶颈。 费用高。需要准备多台应用服务器。由于OSS上传流量是免费的,如果数据直传到OSS,不通过应用服务器,那么将能省下几台应用服务器。 目的 本教程的目的是通过以下三个例子介绍如何通过表单直传数据到OSS: JavaScript客户端签名直传讲解在客户端通过JavaScript代码完成签名,然后通过表单直传数据到OSS。 服务端签名后直传讲解在服务端通过PHP代码完成签名,然后通过表单直传数据到OSS。 服务端签名直传并设置上传回调讲解在服务端通过PHP代码完成签名,并且服务端设置了上传后回调,然后通过表单直传数据到OSS。OSS回调完成后,应用服务器再返回结果给客户端。
    踩1 评论0
正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息