<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## URL安全的Base64編碼 URL安全的Base64編碼適用于以URL方式傳遞Base64編碼結果的場景。該編碼方式的基本過程是先將內容以Base64格式編碼為字符串,然后檢查該結果字符串,將字符串中的加號`+`換成中劃線`-`,并且將斜杠`/`換成下劃線`_`,同時尾部保持填充等號`=`。 詳細編碼規范請參見[RFC4648](http://www.ietf.org/rfc/rfc4648.txt)標準中的相關描述。 ## 域名綁定 每個空間都可以綁定一個到多個自定義域名,以便于更方便的訪問資源。 比如`www.qiniu.com`的所有靜態資源均存放于一個叫`qiniu-resources`的公開空間中。并將該空間綁定到一個二級域名`i1.qiniu.com`,那么如果要在一個HTML頁面中引用該空間的`logo.png`資源,大概的寫法如下: ~~~ <img source="http://i1.qiniu.com/logo.png"></img> ~~~ 這樣既可以在一定程度上隱藏正在使用七牛云存儲的事實,但更大的好處是如果需要從一個云存儲遷移到另一個云存儲,只需要修改域名DNS的CNAME設置,而無需更新網頁源代碼。 ## 七牛ETag算法 七牛的?`hash/etag`?算法是公開的。算法大體如下: ### 小于或等于4M的文件 ~~~ 1. 對文件內容做sha1計算; +---------------+ | <=4MB | +---------------+ \ | / \ sha1() / \ | / \ V / +--+-----+ |1B| 20B | 2. 在sha1值(20字節)前拼上單個字節,值為0x16; +--+-----+ | | | \--- 文件內容的sha1值 | \------ 固定為0x16 3. 對拼接好的21字節的二進制數據做url_safe_base64計算,所得結果即為ETag值。 ~~~ ### 大于4M的文件 ~~~ 1. 對文件內容按4M大小切塊; 2. 對每個塊做sha1計算; +----------+----------+------- | 4MB | 4MB | ... +----------+----------+------- \ | | | / \ sha1() | sha1() / \ | | | / \ V | V / +-----+-----+------- | 20B | 20B | ... +-----+-----+------- \ | / \ sha1() / \ | / \ V / +--+-----+ |1B| 20B | 3. 對所有的 sha1 值拼接后做二次 sha1, +--+-----+ 然后在二次 sha1 值前拼上單個字節,值為0x96; | | | \---- 二次sha1的值 \------- 固定為0x96 4. 對拼接好的21字節的二進制數據做url_safe_base64計算,所得結果即為ETag值。 ~~~ ### FAQ 1. 為何需要公開?`hash/etag`?算法?這個和 “消重” 問題有關,詳細見:[如何避免用戶上傳相同的文件](http://kb.qiniu.com/53tubk96)。 2. 為何在 sha1 值前面加一個字節的標記位(0x16或0x96)? 0x16 = 22,而 2^22 = 4M。所以前面的?`0x16`?其實是文件按 4M 分塊的意思。 0x96 = 0x80 | 0x16。其中的?`0x80`?表示這個文件是大文件(有多個分塊),hash 值也經過了2重的 sha1 計算。 ### 相關工具 [qetag](https://github.com/qiniu/qetag)?是一個計算文件在七牛云存儲上的 hash 值(也是文件下載時的 etag 值)的實用程序。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看