存储在OSS上的文件,如何设置防盗链功能?
为了防止用户在OSS上的数据被其他人盗链,OSS支持基于HTTP header中表头字段referer的防盗链方法。
目前,只有通过OSS的控制台(
http://i.aliyun.com/dashboard/instance?type=oss)可以对一个bucket设置referer字段的白名单和是否允许referer字段为空的请求访问。
例如,对于一个名为mydata的bucket,设置其referer白名单为
http://www.aliyun.com。则所有referer为
http://www.aliyun.com的请求才能访问mydata这个bucket中的Object。
细节分析:
1) 用户只有通过 URL 签名或者匿名访问 Object 时,才会做防盗链验证。请求的 Header 中有“Authorization”字段的,不会做防盗链验证。
2) 一个 bucket 可以支持多个 referer 参数,这些参数之间由“,”号分隔。
3) Referer 参数支持通配符“*”和“?”。
4) 用户可以设置是否允许 referer 字段为空的请求访问。
5) 白名单为空时,不会检查 referer 字段是否为空(不然所有的请求都会被拒绝)。
6) 白名单不为空,且设置了不允许 referer 字段为空的规则;则只有 referer 属于白名单的请求被允许,其他请求(包括 referer 为空的请求)会被拒绝。
7) 如果白名单不为空,但设置了允许 referer 字段为空的规则;则 referer 为空的请求和符合白名单的请求会被允许;其他请求都会被拒绝。
8) Bucket 的三种权限(private,public-read,public-read-write)都会检查 referer字段。
星号“*”:
可以使用星号代替0个或多个字符。如果正在查找以AEW开头的一个文件,但不记得文件名其余部分,可以输入AEW*,查找以AEW开头的所有文件类型的文件,如AEWT.txt、AEWU.EXE、AEWI.dll等。要缩小范围可以输入AEW*.txt,查找以AEW开头的所有文件类型并.txt为扩展名的文件如AEWIP.txt、AEWDF.txt。
问号“?”:
可以使用问号代替一个字符。如果输入love?,查找以love开头的一个字符结尾文件类型的文件,如lovey、lovei等。要缩小范围可以输入love?.doc,查找以love开头的一个字符结尾文件类型并.doc为扩展名的文件如lovey.doc、loveh.doc。
不允许Refer为空 可能有些人搞不明白,简单说就是直接在浏览器中输入图片URL,refer为空;从网页中点击打开图片则refer不为空。
注:资料参考API文档地址
http://help.aliyun.com/manual?&helpId=253
细节分析参考资料
http://www.amznz.com/aliyun-oss-referer/
-------------------------
11.云服务器与OSS 上传文件,流量与请求次数是否收费?
云服务器与OSS之间通过内网地址上传或下载数据,属内网流量,是免费的。
阿里云服务器与OSS之间的内网访问通信地址为:
http://oss-internal.aliyuncs.com
(需用以上方式进行访问,方可计为内网流量)
* 可通过cname方式或三级域名的方式访问文件
云服务器与OSS每次请求所产生的请求次数,不分内外网都会计费。
收费详情请参考
http://www.aliyun.com/product?type=oss#price
12.OSS API返回结果没有JSON格式的吗?
只有XML格式
13. 如何进行大文件上传?
1、有开发能力的用户:可以通过oss API或SDK来操作。
• 5GB以下文件或网络速度好的用户,可以使用PUT object 。
• 5GB以上或网络速度不好并且文件在100M以上的用户推荐使用 Multipart Upload
2、无开发基础客户可下载OSS客户端,请参考
http://bbs.aliyun.com/read.php?tid=95321
14.object怎么改名?
两种方法可以实现:1. 您可以删除原来的文件,上传新命名的文件也能达到改名的效果2. 您可以通过copy objcet 源文件复制成为一个新名字的文件。再把源文件删除即可
15.OSS中可以重命名bucket吗?是否支持object迁移?
OSS的bucket暂不支持重命名,若需要其他名称建议您重新创建bucket。
OSS 提供了COPY objcet的功能,您可以将原bucekt下的文件COPY到新bucket即可。
16.咨询一下java sdk中的 ossclient对象是否是线程安全的?
java sdk中的 ossclient对象是线程安全的
17.测试版PHP SDK中不能自动检测所需PHP模块,是什么原因?
1.使用phpinfo来查看PHP模块。使用PHPSDK需要配置CURL功能模。具体安装CURL的方法可参考:
http://bbs.aliyun.com/read.php?tid=18967 ;
2.您可以下载最新的PHP SDK包。已支持自动检测所需PHP模块
http://www.aliyun.com/product?type=oss#resources
18.比如多个文件object, 直接指定多个object,生成一个url,打包一起下载?
目前oss不支持多个object打包下载。
此需求可以由上层应用逻辑进行处理。OSS服务提供平台级基础资源的存储支持。
19.OSS返回的文件网络路径,域名都是aliyun的吗?
是的。支持CNAME
同时现在支持绑定自己的域名
20.可以给出一个java实现生成url签名的代码示例吗?
生成签名以后的URL的示例代码如下:
// Generate a presigned URL
Date expires = new Date (new Date().getTime() 1000 * 60); // 1 minute to expire
GeneratePresignedUrlRequest generatePresignedUrlRequest =
new GeneratePresignedUrlRequest(bucketName, key);
generatePresignedUrlRequest.setExpiration(expires);
URL url = client.generatePresignedUrl(generatePresignedUrlRequest);
System.out.println(url.toString());
这段代码假定指定bucketName和key的Object已经上传到OSS,用户可以根据修改设定expires,即过期时间。更详细的操作可以参考OSSClient#generatePresignedUrl方法和GeneratePresignedUrlRequest类的帮助。
-------------------------
21.OSS中url中可以实现授权文件上传吗?
Oss中url中授权文件上传可以实现
java版代码示例如下:GeneratePresignedUrlRequest generatePresignedUrlRequest =
1)url中包含签名的好像能够实现文件的下载,阿里云能实现url中授权文件上传吗?
new GeneratePresignedUrlRequest(bucketName, key);
2)java版代码示例如下:
generatePresignedUrlRequest.setMethod(HttpMethod.PUT);
generatePresignedUrlRequest.setExpiration(expires);
generatePresignedUrlRequest.addUserMetadata("usermeta", "uservalue"); // If you need to set user metadata
URL url = client.generatePresignedUrl(generatePresignedUrlRequest);
22.如何使用JAVA SDK源代码?
您可以使用jd decompiler等Java反编译的工具打开SDK的jar文件,即可以查看全部源代码。
23.为什么bucket下的文件都删除了,却还能查看到占用的空间,并且bucket也删除不了?
请确认您是否使用过UploadMultipart 的功能,如使用过,建议您可以通过UploadsList Multipart 查看是否存在已经被初始化但是未被Complete或者Abort的 Multipart Upload的part。如果有,则需再执行Abort Multipart Upload(来终止上次操作的 Multipart Upload,该命令会自动删除未完成的part)。
因为未完成合并的part,无法形成objcet, 所以通过object list是看不到这些残留的part 但这些都会产生占用空间量。
24.如何使用内网 ?
阿里云云服务器与OSS之间通过Bucket.oss-internal.aliyuncs.com(OSS内网请求域名)的方式请求,所产生的网络流量可享受内网流量免费。
25.无法上传大文件怎么办?
无法向OSS上传大文件。上传1KB以下的文件就可以,2KB以上的文件就不成功,请求发出去就收不到任何响应,直至超时。
解决办法是将本机的MTU设成1470(默认应该是1500)
Linux下修改MTU的命令是:(以阿里云服务器oss走内网默认是eth0为例)
ip link set dev eth0 mtu 1470
26.OSS支持bucket作为三级域名的访问方式?
三级域名外链访问:
http://bucketname.oss.aliyuncs.com/object
例如:
http://cloudstorage.oss.aliyuncs.com/pujing.jpg
普通外链访问:
http://oss.aliyuncs.com/bucketname/object
例如:
http://oss.aliyuncs.com/cloudstorage/pujing.jpg
温馨提示:如果你的bucket里面有下划线"_",那么由于不符合WWW规范,所以无法做为三级域名使用,只能使用普通外链访问方式。
-------------------------
终于整理出来了 。。。。大半夜的 闹鬼啊
-------------------------
回 6楼(kashi) 的帖子
谢谢支持
-------------------------
回 5楼(yyd521) 的帖子
只要能帮到大家
应该的拉
-------------------------
Re:ReOSS官方帮助文档在此归类发布,常见问题基本能在这里找到答案。
引用第10楼pasahu于2013-07-20 20:53发表的 ReOSS官方帮助文档在此归类发布,常见问题基本能在这里找到答案。 :
快点吧 discuz x2.5 3.0整出来吧。。搞些实在的。
你好 这个我们在做 很快 插件就出来了
-------------------------
感谢夸奖