开发者社区> 问答> 正文

使用OSS自带的域名 文件怎么变成预览了

不是说 使用OSS自带的域名 会导致文件强制下载吗 前段时间好好的 怎么又突然变成预览模式了

展开
收起
badou 2016-03-16 13:46:44 5764 0
1 条回答
写回答
取消 提交回答
  • 今年3月份oss做了产品更新,bucket域名的强制下载策略改变了的,取消了bucket域名的强制下载
    如果你想实现强制下载

    oss访问object实现强制下载:
    如 aaaa.oss-cn-hangzhou.aliyuncs.com
    想实现其下面的objectURL访问强制下载
    1) 设置对应的object 的http头的contentdisposition,格式类似:格式如:attachment;filename=123.jpeg ,
    2) 对aaaa这个bucket开启cdn加速,源站设置:aaaa.oss-cn-hangzhou.aliyuncs.com,回源host:aaaa.oss-cn-hangzhou.aliyuncs.com
    加速成功后,设置cdn的http头的,contentdisposition参数
    注意 这个设置后,该域名全站强制下载了的
    3) 如果aaaa bucket为公共读写,http:// aaaa.oss-cn-hangzhou.aliyuncs.com /object?response-content-disposition=xxx
    参考:目前只有js sdk可以支持的
    https://github.com/ali-sdk/ali-oss#signatureurlname-options
    Javasdk也是支持的代码参考如下:

        String bucketName = "bucket名称";
        String key = "1/2/1.jpg";
        OSSClient client = new OSSClient(OSS_ENDPOINT,ACCESS_ID, ACCESS_KEY);
        GeneratePresignedUrlRequest generatePresignedUrlRequest = new GeneratePresignedUrlRequest(bucketName, key);
        Calendar cal=Calendar.getInstance();
        cal.add(Calendar.MINUTE, 600);
        Date date=cal.getTime();
        
        generatePresignedUrlRequest.setExpiration(date);
        ResponseHeaderOverrides rho=new ResponseHeaderOverrides();
        rho.setContentDisposition("attachment;filename=123.jpeg");
    
        generatePresignedUrlRequest.setResponseHeaders(rho);
        URL url=client.generatePresignedUrl(generatePresignedUrlRequest);
    
    2019-07-17 18:34:15
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
OSS运维进阶实战手册 立即下载
《OSS运维基础实战手册》 立即下载
OSS运维基础实战手册 立即下载