在不用SDK的情况下,您也可以直接使用HTTP下载存放在OSS中的文件。HTTP下载包括直接使用浏览器下载或者使用wget
curl
等命令行工具下载,此时文件的URL需要由SDK生成。
使用
Bucket#object_url
方法生成可下载的HTTP地址,包含以下参数:
- key:要下载的文件名称。
- sign:是否生成带签名的URL。
说明
- 对于访问权限为公共读(public-read)或者公共读写(public-read-write)的文件,允许您通过不带签名的URL进行访问。
- 对于访问权限为私有(private)的文件,您必须通过带签名的URL进行访问。
- expires:URL的有效时间,默认值为60s。
示例代码
以下代码用于HTTP下载。
require 'aliyun/oss'
client = Aliyun::OSS::Client.new(
# Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
# 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')
# 填写Bucket名称,例如examplebucket。
bucket = client.get_bucket('examplebucket')
# 生成URL,默认带签名,有效时间为60秒。
puts bucket.object_url('my-object')
# https://examplebucket.oss-cn-hangzhou.aliyuncs.com/my-object?Expires=1448349966&OSSAccessKeyId=5vxxxx&Signature=aM2HpBLeMq1aec6JCd7BBAKYiwI%3D
# 不带签名的URL。
puts bucket.object_url('my-object', false)
# https://examplebucket.oss-cn-hangzhou.aliyuncs.com/my-object
# 指定URL有效时间为1小时(3600秒)。
puts bucket.object_url('my-object', true, 3600)