图片CDN加速访问,快速打开网站,图片如何在线压缩?

什么是CDN?java实现CDN

CDN : 内容分发网络Content Delivery Network

众所周知,如果图片上传到自身的服务器,用户访问站点时,因为要顺序的从服务端下载所需资源数据,速度会很慢,严重影响用户体验。CDN(内容分发网络)圆满解决了这个问题,以七牛云为例,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问相应速度和命中率

本人第一次做小站,小白级别,用的腾讯的服务器99一年,搞活动时候买的,CDN选的七牛的(优点免费),通过CNAME域名解析映射到七牛给的域名地址

腾讯服务:云服务注册

七牛云:https://portal.qiniu.com/qvm/active?code=1381868331O7ktV

 

package test;
 
import java.io.File;
 
import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import com.qiniu.storage.UploadManager;
import com.qiniu.util.Auth;
 
/**
 * 七牛 java sdk 简单上传,覆盖上传,文件上传
 * @author yunlingfly
 */
public class SimpleUpload {
 
    Auth auth = Auth.create(AccountMgr.ACCESS_KEY, AccountMgr.SECRET_KEY);
    UploadManager uploadManager = new UploadManager();
 
    /**
     * 获取凭证
     * @param bucketName 空间名称
     * @param key 如果需要覆盖上传则设置此参数
     * @return
     */
    public String getUpToken(String bucketName,String key) {
        return auth.uploadToken(bucketName);
    }
 
    /**
     * 上传方法1
     * @param filePath 文件路径  (也可以是字节数组、或者File对象)
     * @param key 上传到七牛上的文件的名称  (同一个空间下,名称【key】是唯一的)
     * @param bucketName 空间名称  (这里是为了获取上传凭证)
     */
    public void upload(String filePath, String key, String bucketName) {
        try {
            // 调用put方法上传
            Response res = uploadManager.put(filePath, key, getUpToken(bucketName,key));
            // 打印返回的信息
            System.out.println(res.bodyString());
        } catch (QiniuException e) {
            Response r = e.response;
            // 请求失败时打印的异常的信息
            System.out.println(r.toString());
            try {
                // 响应的文本信息
                System.out.println(r.bodyString());
            } catch (QiniuException qe) {
                // ignore
            }
        }
    }
    
    /**
     * 上传方法2
     * @param file 文件
     * @param key 上传到七牛上的文件的名称  (同一个空间下,名称【key】是唯一的)
     * @param bucketName 空间名称  (这里是为了获取上传凭证)
     */
    public void upload(File file, String key, String bucketName) {
        try {
            // 调用put方法上传
            Response res = uploadManager.put(file, key, getUpToken(bucketName,key));
            // 打印返回的信息
            System.out.println(res.bodyString());
        } catch (QiniuException e) {
            Response r = e.response;
            // 请求失败时打印的异常的信息
            System.out.println(r.toString());
            try {
                // 响应的文本信息
                System.out.println(r.bodyString());
            } catch (QiniuException qe) {
                // ignore
            }
        }
    }
 
    /**
     * 上传方法3 覆盖上传
     * @param path
     *            上传文件路径
     * @param bucketName
     *            空间名
     * @param key
     *            文件名
     */
    public void overrideUpload(String path, String key, String bucketName) {
        try {
            String token = getUpToken(bucketName, key);//获取 token
            Response response = uploadManager.put(path, key, token);//执行上传,通过token来识别 该上传是“覆盖上传”
            System.out.println(response.toString());
        } catch (QiniuException e) {
            System.out.println(e.response.statusCode);
            e.printStackTrace();
        }
    }
    /**
     * 主函数:程序入口,测试功能
     * @param args
     */
    public static void main(String[] args) {
        // 上传文件的路径,因为在Mac下,所以路径和windows下不同
        String filePath = "D:\\test.txt";
        // 要上传的空间
        String bucketName = "test";
        // 上传到七牛后保存的文件名
        String key = "sometext.txt";
        // 这里的filepath可以直接替换成File如下注释所示
        // File file=new File(filePath);
        // new SimpleUpload().upload(file, key, bucketName);
        new SimpleUpload().upload(filePath, key, bucketName);
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值