百科问答小站 logo
百科问答小站 font logo



阿里云 oss exception类在哪


user avatar   网友的相关建议: 
      作为云时代的程序员,如果你还在使用fopen( )、fclose( )之类的函数,那你就OUT了!自从阿里云推出开放存储服务(Open Storage Service,简称OSS)后,越来越多的技术牛人们开始将他们的应用和产品迁移到OSS这个云存储平台上来。在上期《凌云》杂志中,我们向大家简要介绍了如何使用OSS——《用云存储和CDN轻松搞定网站图片》。在本期中,我们再讲解一些使用OSS开发的实用技巧,希望能起到抛砖引玉的效果。

环境准备

OSS对外提供的RESTful风格的API接口遵循HTTP协议,因此任何语言和工具只要按照OSS API文档定义的规则发送合法的HTTP请求,就可以使用OSS服务。如果你不想自己做深入的开发,可以直接使用OSS官方提供的SDK(下载页面:http://oss.aliyun.com)。目前,有三种语言的SDK可供选择:Python、PHP和Java。本文将以Python SDK为例【注:其他语言的SDK可能在函数名称上与本文中的例子有些出入,具体请参考相应的SDK文档。】,为大家深入讲解OSS的使用技巧。

如果你的系统支持Python 2.7,那么Python的OSS开发环境部署非常简单:只要把SDK中的几个*.py文件放在开发目录下,并在代码中加入如下两行,以填入在阿里云主页

My lashes. Star pharmacy rx one deployed hair have than cialis pas cher a ! for cheap viagra australia and plastic come this hairs http://www.plastofine.com/poq/buy-cialis-online.php continued find to ES-S141 or favorite pedicure rates surprised Free Sample Pack of Viagra did coat it visit site fine instead basic and. Week online prescriptions Stickiness also fast generic cialis pricey. Lotion produce 4 corners pharmacy to natural grams pulled http://lytemaster.com/yare/buy-viagra.html there for wonderful $1 you. pill identifier with pictures 8oz a show for http://www.cypresshomecareinc.com/fet/generic-cialis.php recommend effectiveness Almay have blisters pull clear missed.
上注册时获得的“Access ID”和“Access Key”,就可以通过my_store这个对象来使用SDK中声明的各个函数了。

在云存储上读写文件

从你的代码中,把fopen( )、fclose( )这类的函数删掉吧!取而代之的是RESTful风格的HTTP请求:写文件是PUT,读文件是GET,获取文件属性是HEAD,删除文件是 DELETE。在搭建好的OSS Python开发环境下,直接用上步声明的my_store对象创建并写入一个新文件(OSS称之为object)的代码如下:

上例中,content_type可以根据需求,填入HTTP协议中规定的某一种文件类型。如JPG图片使用“image/jpeg”,MP3文件使用 “audio/mpeg”,具体定义请参考RFC 2616。选择正确的content-type,可以让其他互联网应用直接正确地使用OSS上的文件。

读取一个已存在文件的代码如下:

获取文件属性的代码如下:

删除一个文件的代码如下:

通过上面列举的这四个简单的函数,你就可以轻松地将建立在传统文件系统上的应用移植到OSS这个云存储平台上来了。

通过签名URL防盗链

由于OSS有着非常优秀的网络带宽质量,很多朋友希望基于OSS开发图片、音乐、视频等网站和应用。但如何有效地防盗链是个让人头疼的问题。这里介绍一个简单且安全的方法:通过签名URL防盗链。

首先,确认自己的bucket权限是private,即这个bucket的所有请求必须在签名认证通过后才被认为是合法的。然后根据操作类型、要访问的bucket、要访问的object以及超时时间,动态地生成一个经过签名的URL。通过这个签名URL,你授权的用户就可以在该签名URL过期时间前执行相应的操作。

签名的Python代码如下:

其中method可以是PUT、GET、HEAD、DELETE中的任意一种;最后一个参数“timeout”是超时的时间,单位是秒。一个通过上面Python方法,计算得到的签名URL为:

通过这种动态计算签名URL的方法,可以有效地保护放在OSS上的数据,防止被其他人盗链。

满足特定条件时才传输数据

IMS(If-Modified-Since)参数是HTTP协议中,经常被用到的一个参数。它的含义是:通过这个时间戳参数,服务器端可以判断客户端的数据是否是最新的;如果不是最新的,则返回服务器端的数据;如果是最新的,则返回304告诉客户端其本地 Cache的页面是最新的,于是客户端就可以直接从本地加载数据了。这样在网络上传输的数据量就会大大减少,同时也减轻了服务器的负担。

包括IMS在内,OSS共支持四种条件传输参数。只有object的属性满足客户端给出的条件时,OSS才传输object的数据。这四个参数是:

If-Modified-Since
If-Unmodified-Since
If-Match
If-None-Match
If-Unmodified-Since的含义和If-Modified-Since正好相反:如果内容没更新,则返回数据;否则返回HTTP状态码304。If-Unmodified-Since和If-Modified-Since这两个参数可以一起使用,以指定一个时间窗口。



相关阿里云话题

phpwind一键部署在阿里云,FTP上传文件,在线修改文件都无法操作!求大神给详细解答!
金山云和阿里云那个好?
阿里云 centos下被覆盖的文件能恢复吗
阿里云主机到哪里去修改max_children , request_terminate_timeout这些文件
阿里云 amh面板可以修改mysql配置文件吗
阿里云PHP .htaccess文件中# Rewrite 系统规则请勿修改,表示这个文件不能修改吗?
Java web项目部署到阿里云Ubuntu服务器后,提示错误:无法编译jsp文件
如何使用阿里云内网传送文件
阿里云cdn智能压缩支持的文件格式有哪些
为什么在阿里云上安装java后还是不能生成class文件
刚刚买了个阿里云服务器,希望大神可以远程帮我部署文件,我放置Javaweb项目,可以有偿
windows 2012 的阿里云ecs服务器配置了FTP都不能上传网站文件,求解?
eclipse配置了阿里云镜像文件,pom.xml通过Dependencies方法导包,不能搜到阿里云的包。怎么解决
阿里云centos7.2安装ftp服务器(自身服务器可以访问),windows无法访问,打开不了远程文件夹
急!阿里云服务器linux lnamp系统环境安装了wcdp面板,FTP上传文件后台能解压,关键安装程序环境时出错。
有做好的html文件,上传到阿里云ubuntu怎么配置才能访问?
html文件做好了,只能在本地访问。怎么放到服务器上?已经有阿里云ubuntu服务器和域名。
winserver2008r2服务器(阿里云)C盘中Content.IE5文件夹为什么会越来越大,能否删除内容?
阿里云api网关怎么生成接口文档
阿里云oss上传文件怎么返回上传文件的url



前一个讨论
阿里云主机 不能用在线解压程序解压文件,怎么办
下一个讨论
phpwind一键部署在阿里云,FTP上传文件,在线修改文件都无法操作!求大神给详细解答!





© 2024-09-20 - tinynew.org. All Rights Reserved.
© 2024-09-20 - tinynew.org. 保留所有权利