真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

OSSJavaScript客戶端是怎樣的

OSS JavaScript客戶端是怎樣的,針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。

創(chuàng)新互聯(lián)是專業(yè)的平?jīng)鼍W(wǎng)站建設(shè)公司,平?jīng)鼋訂?提供網(wǎng)站設(shè)計(jì)制作、網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行平?jīng)鼍W(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

使用 OSS 上傳到文件服務(wù)器做文件存儲(chǔ),還是一樣通過(guò) 客戶端直傳,服務(wù)端只需要做一個(gè)簽名的加密,這樣子既可以做到安全性,又降低了服務(wù)端的壓力:
OSS 客戶daunt直傳官方文檔

OSS JavaScript客戶端是怎樣的

大致的實(shí)現(xiàn)流程可以看下,簽名對(duì)于我的理解是防止 篡改性,保證安全性

這上面的流程大家看下,應(yīng)該就懂了,就是簽名,上傳,然后接收回調(diào)信息,然后告訴客戶端成功了,這樣子就是一個(gè)上傳成功的實(shí)現(xiàn)。

OSS JavaScript客戶端是怎樣的

這里是服務(wù)端的簽名,大家根據(jù)自己的語(yǔ)言選擇下載,我這邊是以java為主,
如果不懂,文件存儲(chǔ)等一些桶的配置,跨域的可以看看官方的文檔
OSS 配置文檔這里描述了這么去設(shè)置OSS的一些配置

設(shè)置好了之后我們來(lái)看看官方給的代碼吧,我們需要設(shè)置一些什么呢:

bucketName: myxxxxxxxxxxxxx1 accessKey: LTAxxxxxxxxxxxxx1 secretKey: 46MxxxxxxxxxxxxxOe4yU region: oss-cn-beijing.aliyuncs.com dir: xxxxxxxxxxxxx/

OSS JavaScript客戶端是怎樣的

bucketName就是Bucket的名稱,region就是區(qū)域,dir就是目錄了
我這里已經(jīng)把代碼都整理好了,需要的自取:
https://github.com/qurenneng/CloudObjectWeb-java,可以點(diǎn)個(gè)start哦
下載下來(lái)后,依賴都已經(jīng)弄好了可以直接跑起來(lái),然后訪問 http://localhost:8084/index.html,這里要注意跨域一定要設(shè)置好,而且,OSS有一個(gè)問題,就是上傳成功后回調(diào),所以這里必須要放在云服務(wù)器上面才能進(jìn)行測(cè)試,因?yàn)橐邮躉SS發(fā)送過(guò)來(lái)的回調(diào)參數(shù),所以測(cè)試只能在服務(wù)器上面進(jìn)行測(cè)試,需要的可以看 https://www.aliyun.com/activity?userCode=ooxl1zly
接下來(lái)我們看看代碼吧:
CommonApiController:

    /** 阿里云 oss web直傳
     * 驗(yàn)證簽名:
     * @return
     */
    @GetMapping("/callbackSign")
    public Map callbackSign(){
        OssStsAuth ossStsAuth= new OssStsAuth();
        Map sign = ossStsAuth.getSign(ossProperties);
        return  sign;
    }

    /**
     * 阿里云  oss 回調(diào)進(jìn)行回調(diào):
     * @return
     */
    @RequestMapping("/callbackUrl")
    public void callbackUrl(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
        OssStsAuth ossStsAuth= new OssStsAuth();
        String ossCallbackBody = ossStsAuth.GetPostBody(request.getInputStream(),
                Integer.parseInt(request.getHeader("content-length")));
        boolean b = ossStsAuth.VerifyOSSCallbackRequest(request, ossCallbackBody);
        if(b){
            ossStsAuth.response(request, response, "{\"Status\":\"OK\"}", HttpServletResponse.SC_OK);
        }else{
            ossStsAuth.response(request, response, "{\"Status\":\"verdify not ok\"}", HttpServletResponse.SC_BAD_REQUEST);
        }
    }
上面就是客戶端上傳的控制層,下面的接口是用戶接受OSS回調(diào)的接口
OssStsAuth:


    public Map getSign(OssProperties cosProperties){
        String accessId = cosProperties.getAccessKey(); // 請(qǐng)?zhí)顚懩腁ccessKeyId。
        String accessKey = cosProperties.getSecretKey(); // 請(qǐng)?zhí)顚懩腁ccessKeySecret。
        String endpoint = cosProperties.getRegion(); // 請(qǐng)?zhí)顚懩?endpoint。
        String bucket = cosProperties.getBucketName(); // 請(qǐng)?zhí)顚懩?bucketname 。
        String host = "http://">         // callbackUrl為 上傳回調(diào)服務(wù)器的URL,請(qǐng)將下面的IP和Port配置為您自己的真實(shí)信息。
        String callbackUrl = "http://ip:8084/callbackUrl";
        String dir = cosProperties.getDir(); // 用戶上傳文件時(shí)指定的前綴。
        Map respMap = new LinkedHashMap();
        OSSClient client = new OSSClient(endpoint, accessId, accessKey);
        try {
            long expireTime = 1000; //官方默認(rèn)是 30秒 這里會(huì)出現(xiàn) 緩存的問題 解決 驗(yàn)證簽名時(shí)會(huì)出現(xiàn)問題
            long expireEndTime = System.currentTimeMillis() + expireTime * 1000;
            Date expiration = new Date(expireEndTime);
            PolicyConditions policyConds = new PolicyConditions();
            policyConds.addConditionItem(PolicyConditions.COND_CONTENT_LENGTH_RANGE, 0, 1048576000);
            policyConds.addConditionItem(MatchMode.StartWith, PolicyConditions.COND_KEY, dir);

            String postPolicy = client.generatePostPolicy(expiration, policyConds);
            byte[] binaryData = postPolicy.getBytes("utf-8");
            String encodedPolicy = BinaryUtil.toBase64String(binaryData);
            String postSignature = client.calculatePostSignature(postPolicy);

            respMap.put("accessid", accessId);
            respMap.put("policy", encodedPolicy);
            respMap.put("signature", postSignature);
            respMap.put("dir", dir);
            respMap.put("host", host);
            respMap.put("expire", String.valueOf(expireEndTime / 1000));

            JSONObject jasonCallback = new JSONObject();
            jasonCallback.put("callbackUrl", callbackUrl);
            jasonCallback.put("callbackBody",
                    "filename=${object}&size=${size}&mimeType=${mimeType}&height=${imageInfo.height}&width=${imageInfo.width}");
            jasonCallback.put("callbackBodyType", "application/x-www-form-urlencoded");
            String base64CallbackBody = BinaryUtil.toBase64String(jasonCallback.toString().getBytes());
            respMap.put("callback", base64CallbackBody);
            return  respMap;
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
        return  respMap;
    }
需要配置的參數(shù)都設(shè)置在application.yml文件中,
ossProperties:這個(gè)配置中,大家運(yùn)行起來(lái)后直接訪問上傳就好了,配置等設(shè)置一定要弄好,有問題就下方評(píng)論吧

關(guān)于OSS JavaScript客戶端是怎樣的問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。


新聞標(biāo)題:OSSJavaScript客戶端是怎樣的
路徑分享:http://weahome.cn/article/gehgds.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部