生成共享鏈接
更新時間 2024-10-10 18:44:15
最近更新時間: 2024-10-10 18:44:15
分享文章
本節主要介紹生成共享鏈接。
生成共享鏈接
可以通過生成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());
}
以下是一個生成的共享鏈接:
//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 文件中,參與共享鏈接生成,以下為增加了下載速度限制生成的共享鏈接的示例:
//oos-cn.ctyunapi.cn/example-bucket/6aa3df83gw1f35nhhp70pj20gj0r046l.jpg?Signature=8l7F/pabWm2%2Bi8iXyExZIXm/eGY%3D&AWSAccessKeyId=08f17977afa1a87736ac&Expires=1528438576&x-amz-limitrate=2048