(Pic from: softicons.com)在「取代 Google Code 外連 js 檔的選擇__Google Drive」這篇文章的「四、Google Drive 取得檔案外連的簡易方法及範例」,已經介紹過取得檔案外連路徑的簡易方法。不過 +Mark X 曾告知 "我發現我使用的版本沒有主機位置這項"、"試傳一張圖片, 還是沒有. 是因為我用英文版本嗎?"。
當時以為可能是版本不同造成的問題,不過後來 PTT Google 版也有網友反應類似狀況,所以看來不是版本的問題。經過測試後找到了真正原因,以下說明原理、及取得檔案外連路徑的可行步驟,且一併整理不能顯示檔案外連路徑的各種狀況。
2014.11.21 公告:如果你的 Google Drive 已經升級為最新版的介面,請使用這篇「Google Drive 外連產生器__一秒鐘輕鬆複製連結」。
一、Google Drive 外連檔案路徑的原理
1. 失效狀況
按照「前文」的方法來取得外連路徑,經過測試之後發現:
- 只要是將檔案上傳到根目錄,無論是否設定為公開,都無法顯示外連路徑
但是依照前文「三、Google Drive 的操作」的步驟,所有上傳到資料夾的 js 檔,明明都能顯示外連路徑,怎麼會這樣呢?
2. 外連檔案路徑的原理
以我的這個檔案「translate.js」為例,其外連網址為:
https://googledrive.com/host/0BykclfTTti-0SlU3SDg5RUVtNlk/translate.js
經分析以上網址後可發現其結構,https://googledrive.com/host/0BykclfTTti-0SlU3SDg5RUVtNlk/ 這個字串為資料夾路徑,translate.js 這個字串為檔名,這是一個「結構式外連路徑」。想要測試的話,可將 https://googledrive.com/host/0BykclfTTti-0SlU3SDg5RUVtNlk/ 貼到網址,就會顯示該資料夾的所有檔案。
那麼真相就呼之欲出了,如果我將 translate.js 上傳到根目錄,這個檔案的外連路徑不可能變成 https://googledrive.com/host/translate.js,因為此網址無法判斷出是那個使用者的檔案,難怪在根目錄的檔案 Google Drive 不顯示外連網址。
因此,想得到簡易的「結構式外連路徑」,答案就是必須將檔案上傳到資料夾。
二、取得外連路徑的正確方法
根據「一、Google Drive 外連檔案路徑的原理」得到的結論,以下為簡單操作步驟說明:
1. 建立資料夾,將資料夾的共用權限設定為「公開在網路上」
2. 將檔案上傳(或拖曳)到此資料夾
3. 對著檔案按右鍵,點選「詳細資料」,即可找到外連路徑。
如需要圖文對照說明,請參考「前文」→「三、Google Drive 的操作」→「四、Google Drive 取得檔案外連的簡易方法及範例」即可。
三、各種不能顯示外連路徑的狀況
根據個人的使用經驗,仍然有一些檔案與某些狀況是看不到「結構式外連路徑」的,整理如下:
1. Google Drive 建立的檔案
例如試算表、表單這些由 Google Drive 所建立的檔案,因為另外放在別的伺服器,所以其外連路徑要用別的操作方式取得。如下圖紅框,試算表右上角的「共用」按鈕可取得檔案共用連結。
另外,若想取得試算表中的資料數據,可參考這篇「利用 Google 問卷(試算表)當小型資料庫__(一)製作資料庫」
2. 上傳相同檔名的檔案
經測試後,如果上傳相同檔名的檔案(例如 wfu.js),較舊的檔案不會被覆蓋,所有 wfu.js 會並存於 Google Drive,相信這是為了協同作業而設計,保留檔案的更新歷程。如此「結構式外連路徑」將無法對應多個檔案,而導致失效。
在這種情況下,如上圖,按右鍵選擇 "詳細資料"時,所有 wfu.js 都看不到「結構式外連路徑」。
另外要注意的是,就算把所有 wfu.js 全部刪除,額外再上傳一個 wfu.js,仍然無法看到「結構式外連路徑」!所以必須避免上傳相同檔名的檔案。
四、提供下載的外連網址
2014.2.4 補充:以上談的都是「檔案外連網址」,適合外連的 js、CSS 這類檔案,或直接將 PDF、DOC 等展示在網頁上的檔案。
不過當我們要提供訪客下載的檔案時,就不能用外連網址了,必須另外使用專門下載的網址。關於這個部份,可參考這篇「Google Drive 共用檔案連結,轉換成直接下載連結」製作一個快速轉換書籤。
Google Drive 相關心得:
'2. 上傳相同檔名的檔案'
回覆刪除是否唯有將整個資料夾delete,再另開一個新的資料夾,才會出現結構式外連路徑?
我的原因則是一開始建立的資料夾就必須"即刻"設定為公開(空資料夾), 然後才能開始放資料進去, 而那些資料才會顯示主機位置. 如上傳完資料後才設定為公開就不會有主機路徑.
回覆刪除<2748883796408325837>(以上內容請勿刪除,從括號之後開始留言)要多謝您破解這樁迷案!
回覆刪除<8411265580543784974>(以上內容請勿刪除,從括號之後開始留言)等臉書修復好再測試.
回覆刪除原來的Blogger留言板使用內嵌式不是比較方便嗎?怎麼會想到使用popup?