生成共享链接
可以通过生成Object的共享链接的方式,将Object分享给其他人,同时可以在链接中设置限速以对下载速度进行控制。例如在JAVA SDK中调用AmazonS3中的generatePresignedUrl ( GeneratePresignedUrlRequest )方法生成共享链接, GeneratePresignedUrlRequest的参数包含了BucketName,ObjectName,并且可以设置过期时间和下载速度;如果过期时间传Null的话,默认的过期时间是15分钟。超出过期时间后,共享链接失效,不能再通过链接下载 Object。
说明如果使用V2签名,共享链接过期时间最大可以设置为9223372036854775秒。如果使用V4签名,共享链接过期时间最大可以设置为7天(604800秒)。
生成共享链接示例:
public static void generatePresignedUrl(AmazonS3 oosClient) {
GeneratePresignedUrlRequest shareUrlRequest = new GeneratePresignedUrlRequest(
BUCKET_NAME, OBJECT_NAME);
java.util.Date now = new java.util.Date();
java.util.Date expire = new Date(now.getTime() + 24 * 3600 * 1000); //24*3600*1000
shareUrlRequest.setExpiration(expire);
//shareUrlRequest.addRequestParameter("x-amz-limitrate", "2048");
URL url1 = oosClient.generatePresignedUrl(shareUrlRequest);
System.out.println(url1.toString());
}
以下是一个生成的共享链接:
http://oos-cn.ctyunapi.cn/example-bucket/6aa3df83gw1f35nhhp70pj20gj0r046l.jpg?Signature=8l7F/pabWm2%2Bi8iXyExZIXm/eGY%3D&AWSAccessKeyId=08f17977afa1a87736ac&Expires=1363760719
共享链接限速
如果需要为链接设置下载速度限制,需要新增加自定义参数“x-amz-limitrate”,调用GeneratePresignedUrlRequest.addRequestParameter("x-amz-limitrate", value)方法,value 值为限速带宽(单位 KiB/s),将参数加到 GeneratePresignedUrlRequest 文件中,参与共享链接生成,以下为增加了下载速度限制生成的共享链接的示例:
http://oos-cn.ctyunapi.cn/example-bucket/6aa3df83gw1f35nhhp70pj20gj0r046l.jpg?Signature=8l7F/pabWm2%2Bi8iXyExZIXm/eGY%3D&AWSAccessKeyId=08f17977afa1a87736ac&Expires=1528438576&x-amz-limitrate=2048