Google is committed to advancing racial equity for Black communities. See how.
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

在Web上創建存儲參考

您的文件存儲在Google Cloud Storage存儲桶中。此存儲桶中的文件以分層結構顯示,就像本地硬盤上的文件系統或Firebase Realtime數據庫中的數據一樣。通過創建對文件的引用,您的應用可以訪問該文件。這些引用隨後可用於上載或下載數據,獲取或更新元數據或刪除文件。引用可以指向特定文件,也可以指向層次結構中的更高級別的節點。

如果您使用過Firebase Realtime數據庫 ,則對您來說,這些路徑可能看起來非常熟悉-應該!但是,您的文件數據存儲在Google Cloud Storage中, 而不是實時數據庫中。

創建參考

為了上載或下載文件,刪除文件或獲取或更新元數據,必須創建對要操作的文件的引用。引用可以被視為指向雲中文件的指針。引用是輕量級的,因此您可以根據需要創建任意數量的引用,並且它們也可用於多種操作。

從Firebase應用程序中的storage()服務創建引用。此參考指向您的Cloud Storage存儲桶的根。

// Get a reference to the storage service, which is used to create references in your storage bucket
var storage = firebase.storage();

// Create a storage reference from our storage service
var storageRef = storage.ref();

您可以通過在現有參考上使用child()方法來創建對樹中較低位置的參考,例如'images/space.jpg'

// Create a child reference
var imagesRef = storageRef.child('images');
// imagesRef now points to 'images'

// Child references can also take paths delimited by '/'
var spaceRef = storageRef.child('images/space.jpg');
// spaceRef now points to "images/space.jpg"
// imagesRef still points to "images"

您還可以使用parentroot屬性在文件層次結構中向上導航。 parent級向上導航一個級別,而root級則一直導航到頂部。

// Parent allows us to move to the parent of a reference
var imagesRef = spaceRef.parent;
// imagesRef now points to 'images'

// Root allows us to move all the way back to the top of our bucket
var rootRef = spaceRef.root;
// rootRef now points to the root

child()parentroot可以多次鏈接在一起,因為每個返回一個引用。 rootparent除外,該parentnull

// References can be chained together multiple times
var earthRef = spaceRef.parent.child('earth.jpg');
// earthRef points to 'images/earth.jpg'

// nullRef is null, since the parent of root is null
var nullRef = spaceRef.root.parent;

參考屬性

您可以使用fullPathnamebucket屬性檢查引用,以更好地理解它們指向的文件。這些屬性獲取文件的完整路徑,文件名以及存儲文件的存儲桶。

// Reference's path is: 'images/space.jpg'
// This is analogous to a file path on disk
spaceRef.fullPath;

// Reference's name is the last segment of the full path: 'space.jpg'
// This is analogous to the file name
spaceRef.name;

// Reference's bucket is the name of the storage bucket where files are stored
spaceRef.bucket;

參考文獻的局限性

引用路徑和名稱可以包含任何有效的Unicode字符序列,但是會施加某些限制,包括:

  1. 使用UTF-8編碼時, reference.fullPath總長度必須在1到1024個字節之間。
  2. 沒有回車符或換行符。
  3. 避免使用#[]*? ,因為它們不能與Firebase Realtime Databasegsutil等其他工具配合使用。

完整的例子

// Points to the root reference
var storageRef = firebase.storage().ref();

// Points to 'images'
var imagesRef = storageRef.child('images');

// Points to 'images/space.jpg'
// Note that you can use variables to create child values
var fileName = 'space.jpg';
var spaceRef = imagesRef.child(fileName);

// File path is 'images/space.jpg'
var path = spaceRef.fullPath

// File name is 'space.jpg'
var name = spaceRef.name

// Points to 'images'
var imagesRef = spaceRef.parent;

接下來,讓我們學習如何將文件上傳到Cloud Storage。