游客ok532i3uv4f3y_个人页

游客ok532i3uv4f3y
0
1
0

个人介绍

暂无个人介绍

擅长的技术

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

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

云产品技术能力:

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

阿里云技能认证

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

    移动推送2.2 Maven集成

    详细解答可以参考官方帮助文档 项目顶层build.gradle中添加Maven仓库地址: allprojects { repositories { maven { url 'http://maven.aliyun.com/nexus/content/repositories/releases/' } }} gradle添加依赖: dependencies { compile 'com.aliyun.ams:alicloud-android-push:2.3.7'}(开发时可以如上所述指定完整的版本号,也可以指定模糊版本号,gradle自动拉取满足条件的最新版本SDK,如compile 'com.aliyun.ams:alicloud-android-push:2.+')
    踩1 评论0
  • 提交了问题 2018-06-18

    无法删除虚拟主机根目录下的未知文件

  • 回答了问题 2018-03-21

    主机空间购买费用

    详细解答可以参考官方帮助文档虚拟主机的价格及配置如下,了解虚拟主机产品详情,请单击此处温馨提示:此表价格及配置仅供参考,具体请以实际提交订单为准。独享版云虚拟主机价格轻云服务器价格带宽价格 国内机房带宽(杭州、北京、青岛、深圳) 海外机房带宽(美国、香港) 云虚拟主机价格   
    踩1 评论0
  • 回答了问题 2018-03-12

    Rails应用 初始化OSS Client

    详细解答可以参考官方帮助文档与Rails集成在Rails应用中使用OSS Ruby SDK只需要在Gemfile中添加以下依赖: gem 'aliyun-sdk', '~> 0.3.0然后在使用OSS时引入依赖就可以了: require 'aliyun/oss'另外,SDK的rails/目录下提供一些方便用户使用的辅助代码。 下面我们将利用SDK来实现一个简单的OSS文件管理器(oss-manager),最终包含以下功能: 列出用户所有的Bucket列出Bucket下所有的文件,按目录层级列出上传文件下载文件 1. 创建项目先安装Rails,然后创建一个Rails应用,oss-manager: gem install railsrails new oss-manager作为一个好的习惯,使用git管理项目代码: cd oss-managergit initgit add .git commit -m 'init project'2. 添加SDK依赖编辑oss-manager/Gemfile,向其中加入SDK的依赖: gem 'aliyun-sdk', '~> 0.3.0'然后在oss-manager/下执行: bundle install保存这一步所做的更改: git add .git commit -m 'add aliyun-sdk dependency'3. 初始化OSS Client为了避免在项目中用到OSS Client的地方都要初始化,我们在项目中添加一个初始化文件,方便在项目中使用OSS Client: # oss-manager/config/initializers/aliyun_oss_init.rbrequire 'aliyun/oss'module OSS def self.client unless @client Aliyun::Common::Logging.set_log_file('./log/oss_sdk.log') @client = Aliyun::OSS::Client.new( endpoint: Rails.application.secrets.aliyun_oss['endpoint'], access_key_id: Rails.application.secrets.aliyun_oss['access_key_id'], access_key_secret: Rails.application.secrets.aliyun_oss['access_key_secret'] ) end @client endend 上面的代码在SDK的rails/目录下可以找到。这样初始化后,在项目中使用OSSClient就非常方便: buckets = OSS.client.list_buckets其中endpoint和AccessKeyId/AccessKeySecret保存在oss-manager/conf/secrets.yml中,例如: development: secret_key_base: xxxx aliyun_oss: endpoint: xxxx access_key_id: aaaa access_key_secret: bbbb 保存代码: git add .git commit -m 'add aliyun-sdk initializer'4. 实现List buckets功能首先用rails生成管理Buckets的controller: rails g controller buckets index这样会在oss-manager中生成以下文件: app/controller/buckets_controller.rb Buckets相关的逻辑代码app/views/buckets/index.html.erb Buckets相关的展示代码app/helpers/buckets_helper.rb 一些辅助函数 首先编辑buckets_controller.rb,调用OSS Client,将list_buckets的结果存放在@buckets变量中: class BucketsController ApplicationController def index @buckets = OSS.client.list_buckets endend 然后编辑views/buckets/index.html.erb,将Bucket列表展示出来: Buckets class='table table-striped'> Name Location CreationTime @buckets.each do |bucket| %> link_to bucket.name, bucket_objects_path(bucket.name) %> bucket.location %> bucket.creation_time.localtime.to_s %> end %> 其中bucket_objects_path是一个辅助函数,在app/helpers/buckets_helper.rb中: module BucketsHelper def bucket_objects_path(bucket_name) '/buckets/#{bucket_name}/objects' endend 这样就完成了列出所有Bucket的功能。在运行之前,我们还需要配置Rails的路由,使得我们在浏览器中输入的地址能够调用正确的逻辑。编辑config/routes.rb,增加一条: resources :buckets do resources :objectsend好了,在oss-manager/下输入rails s以启动rails server,然后在浏览器中输入http://localhost:3000/buckets/就能看到Bucket列表了。 最后保存一下代码: git add .git commit -m 'add list buckets feature'5. 实现List objects功能首先生成一个管理Objects的controller: rails g controller objects index然后编辑app/controllers/objects_controller.rb: class ObjectsController ApplicationController def index @bucket_name = params[:bucket_id] @prefix = params[:prefix] @bucket = OSS.client.get_bucket(@bucket_name) @objects = @bucket.list_objects(:prefix => @prefix, :delimiter => '/') endend 上面的代码首先从URL的参数中获取Bucket名字,为了只按目录层级显示,我们还需要一个前缀。然后调用OSS Client的list_objects接口获取文件列表。注意,这里获取的是指定前缀下,并且以’/‘为分界的文件。这样做是为也按目录层级列出文件。请参考管理文件 接下来编辑app/views/objects/index.html.erb: Objects in @bucket_name %> link_to 'Upload file', new_object_path(@bucket_name, @prefix) %> class='table table-striped'> Key Type Size LastModified link_to '../', with_prefix(upper_dir(@prefix)) %> Directory N/A N/A @objects.each do |object| %> if object.is_a?(Aliyun::OSS::Object) %> link_to remove_prefix(object.key, @prefix), @bucket.object_url(object.key) %> object.type %> number_to_human_size(object.size) %> object.last_modified.localtime.to_s %> else %> link_to remove_prefix(object, @prefix), with_prefix(object) %> Directory N/A N/A end %> end %> 上面的代码将文件按目录结构显示,主要逻辑是: 总是在第一个显示’../‘指向上级目录对于Common prefix,显示为目录对于Object,显示为文件 上面的代码中用到了with_prefix, remove_prefix等一些辅助函数,它们定义在app/helpers/objects_helper.rb中: module ObjectsHelper def with_prefix(prefix) '?prefix=#{prefix}' end def remove_prefix(key, prefix) key.sub(/^#{prefix}/, '') end def upper_dir(dir) dir.sub(/[^\/]+\/$/, '') if dir end def new_object_path(bucket_name, prefix = nil) '/buckets/#{bucket_name}/objects/new/#{with_prefix(prefix)}' end def objects_path(bucket_name, prefix = nil) '/buckets/#{bucket_name}/objects/#{with_prefix(prefix)}' endend 完成之后运行rails s,然后在浏览器中输入地址http://localhost:3000/buckets/my-bucket/objects/就可以查看文件列表了。 惯例保存代码: git add .git commit -m 'add list objects feature'6. 下载文件注意到在上一步显示文件列表时,我们为每个文件也添加了一个链接: link_to remove_prefix(object.key, @prefix), @bucket.object_url(object.key) %> 其中Bucket#object_url是一个为文件生成临时URL的方法,参考下载文件 7. 上传文件在Rails这种服务端应用中,用户上传文件有两种办法: 用户先将文件上传到Rails的服务器上,服务器再将文件上传到OSS。这样做需要Rails服务器作为中转,文件多拷贝了一遍,不是很高效。服务器为用户生成表单和临时凭证,用户直接上传文件到OSS。 第一种方法比较简单,与普通的上传文件一样。下面我们用的是第二种方法: 首先在app/controllers/objects_controller.rb中增加一个#new方法,用于生成上传表单: def new @bucket_name = params[:bucket_id] @prefix = params[:prefix] @bucket = OSS.client.get_bucket(@bucket_name) @options = { :prefix => @prefix, :redirect => 'http://localhost:3000/buckets/' }end 然后编辑app/views/objects/new.html.erb: Upload object upload_form(@bucket, @options) do %> class='table table-striped'> Bucket: @bucket.name %> Prefix: @prefix %> Select file: type='file' name='file' style='display:inline' /> colspan='2'> type='submit' class='btn btn-default' value='Upload' />  &nbsp link_to 'Back', objects_path(@bucket_name, @prefix) %> end %> 其中upload_form是SDK提供的一个方便用户生成上传表单的辅助函数,在SDK的代码rails/aliyun_oss_helper.rb中。用户需要将其拷贝到app/helpers/目录下。完成之后运行rails s,然后访问http://localhost:3000/buckets/my-bucket/objects/new就能够上传文件了。 最后记得保存代码: git add .git commit -m 'add upload object feature'8. 添加样式为了让界面更好看一些,我们可以添加一点样式(CSS)。 首先下载bootstrap,解压后将bootstrap.min.css拷贝到app/assets/stylesheets/下。 然后在修改app/views/layouts/application.html.erb,将yield一行改成: id='main'> yield %> 这会为每个页面添加一个id为main的,然后修改app/assets/stylesheets/application.css,加入以下内容: body { text-align: center;}div#main { text-align: left; width: 1024px; margin: 0 auto;} 这会让网页的主体内容居中显示。通过添加简单的样式,我们的页面是不是更加赏心悦目了呢? 至此,一个简单的demo就完成了。完整的demo代码请参看 Alibaba Cloud OSS Rails Demo。
    踩1 评论0
  • 回答了问题 2018-03-04

    在mysql的rds 上我们可以实时去解析binlog 吗

    详细解答可以参考官方帮助文档实时数据订阅功能旨在帮助用户获取RDS/DRDS的实时增量数据,用户能够根据自身业务需求自由消费增量数据,例如实现缓存更新策略、业务异步解耦、异构数据源数据实时同步及含复杂ETL的数据实时同 步等多种业务场景。 功能列表(1) 支持公共云、金融云RDS For MySQL实例的数据订阅。(2) 支持经典网络、VPC网络下RDS For MySQL实例的数据订阅。 数据源类型实时数据订阅支持的数据源类型包括: RDS For MySQLDRDS 其中,DRDS 不记录事务日志,所以如果需要订阅DRDS的实时增量数据,那么需要通过订阅DRDS底层挂载的RDS实例的增量日志来实现。 订阅对象数据订阅的订阅对象可以为:库、表。用户可以根据需要订阅某几个表的增量数据。 数据订阅将增量数据细分为数据变更(Data Manipulation Language 简称DML)和结构变更(Data Definition Language,简称DDL),配置数据订阅时,可以选择需要订阅的具体数据变更类型。 订阅通道订阅通道是进行增量数据订阅与消费的基本单元。如果要订阅RDS的增量数据,必须在数据传输控制台创建一个针对这个RDS实例的订阅通道。订阅通道会实时拉取RDS的增量数据,并将最新一段时间的增量数据保存在订阅通道中,用户可以使用数据传输提供SDK从这个订阅通道中订阅增量数据,并进行相应的消费。同时,用户可以在数据传输控制台进行订阅通道的创建、管理及删除等操作。一个订阅通道同时只能被一个下游SDK订阅消费,如果用户有多个下游需要订阅同一个RDS实例时,需要创建多个订阅通道。这些订阅通道订阅的RDS实例均为同一个实例ID。 订阅通道在创建及运行过程中,不同阶段会处于不同的状态,具体如下表所示: 通道状态 状态说明 可进行操作 预检中 订阅通道已经完成任务配置,正在进行启动之前的简单预检查 删除订阅 未启动 迁移任务已经通过迁移之前的预检查,但是还没有启动订阅 - 开始订阅- 删除订阅 初始化 订阅通道正在进行启动初始化,一般需要1分钟左右 删除订阅 正常 订阅通道正在正常拉取RDS实例的增量数据 - 查看示例代码- 查看订阅数据- 删除订阅 异常 订阅通道拉取RDS实例增量数据异常 - 查看示例代码- 删除订阅 高级特性数据订阅支持多种特性,有效降低用户使用门槛,主要包括: (1) 动态增减订阅对象, 在数据订阅过程中,用户可以随时增加或减少需要订阅的对象。 (2) 在线查看订阅数据, 数据传输DTS控制台支持在线查看订阅通道中的增量数据。 (3) 修改消费时间点,数据订阅支持用户随时修改需要消费数据对应的时间点。 (4) 完善监控体系, 数据订阅提供订阅通道状态、下游消费延迟的报警监控功能。用户可以根据业务敏感度,自定义消费延迟报警阈值。
    踩1 评论0
  • 提交了问题 2018-01-05

    1688账号登录阿里云后怎么修改绑定手机

  • 回答了问题 2018-01-03

    能否设置在浏览器中打开这个文件的时候就直接播放呢,而不是弹出下载窗口

    详细解答可以参考官方帮助文档 文件元信息(Object Meta)是对上传到OSS的文件的属性描述,分为两种:HTTP标准属性(HTTP Headers)和 User Meta(用户自定义元信息)。文件元信息可以在各种方式上传时或者拷贝文件时进行设置。 HTTP标准属性 名称 描述 Cache-Control 指定该Object被下载时的网页的缓存行为 Content-Disposition 指定该Object被下载时的名称 Content-Encoding 指定该Object被下载时的内容编码格式 Content-Language 指定该Object被下载时的内容语言编码 Expires 过期时间 Content-Length 该Object大小 Content-Type 该Object文件类型 Last-Modified 最近修改时间 User Meta 为了便于用户对Object进行更多描述,OSS中规定所有以x-oss-meta-为前缀的参数视为User Meta,比如x-oss-meta-location。一个Object可以有多个类似的参数,但所有的User Meta总大小不能超过8KB。这些User Meta信息会在GetObject或者HeadObject的时候在HTTP头部中返回。 上传Object时设置Object Meta 当上传Object的时候,可以设置Object Meta。 功能使用参考: API:Put Object Java SDK:管理文件元信息 分片上传(断点续传)的时候也可以设置Object Meta。 功能使用参考: API:InitiateMultipartUpload Java SDK:断点续传上传 上传Object后修改Object Meta 如果需要修改Object Meta而不修改Object本身的数据,那么应该使用CopyObject接口来实现这个功能,只需要将新的Meta信息(注意这个Meta必须是全量)放在HTTP头部中,然后将拷贝的源地址和目标地址都设为目标Object的地址即可。 功能使用参考: API:CopyObject Java SDK:拷贝文件 获取Object Meta 如果需要获取Object Meta而并不需要Object本身的数据,可以使用此功能。 功能使用参考: API:Head Object Java SDK:获取文件元信息
    踩1 评论0
正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息