Google is committed to advancing racial equity for Black communities. See how.
Эта страница была переведа с помощью Cloud Translation API.
Switch to English

Создать ссылку на хранилище в Интернете

Ваши файлы хранятся в корзине Google Cloud Storage . Файлы в этой корзине представлены в иерархической структуре, как файловая система на вашем локальном жестком диске или данные в базе данных Firebase Realtime. Создавая ссылку на файл, ваше приложение получает к нему доступ. Эти ссылки затем можно использовать для загрузки или выгрузки данных, получения или обновления метаданных или удаления файла. Ссылка может указывать либо на конкретный файл, либо на узел более высокого уровня в иерархии.

Если вы использовали базу данных Firebase Realtime , эти пути могут показаться вам очень знакомыми - они должны! Однако ваши файловые данные хранятся в Google Cloud Storage, а не в базе данных в реальном времени.

Создать ссылку

Чтобы загружать или скачивать файлы, удалять файлы, получать или обновлять метаданные, вы должны создать ссылку на файл, с которым хотите работать. Ссылку можно рассматривать как указатель на файл в облаке. Ссылки легковесны, поэтому вы можете создать столько, сколько вам нужно, и они также могут быть повторно использованы для нескольких операций.

Создайте ссылки из службы storage() в приложении Firebase. Эта ссылка указывает на корень вашей корзины 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();

Вы можете создать ссылку на место ниже в дереве, скажем, 'images/space.jpg' , используя метод child() для существующей ссылки.

// 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"

Вы также можете использовать свойства parent и root для перемещения вверх по иерархии файлов. 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() , parent и root могут быть связаны вместе несколько раз, поскольку каждый из них возвращает ссылку. Исключение составляет parent root , который имеет значение null .

// 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;

Справочные свойства

Вы можете проверить ссылки, чтобы лучше понять файлы, на которые они указывают, используя fullPath , name и bucket . Эти свойства получают полный путь к файлу, имя файла и сегмент, в котором он хранится.

// 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. Общая длина reference.fullPath должна быть от 1 до 1024 байтов в кодировке UTF-8.
  2. Нет символов возврата каретки или перевода строки.
  3. Избегайте использования # , [ , ] , * или ? , поскольку они не работают с другими инструментами, такими как Firebase Realtime Database или gsutil .

Полный пример

// 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;

Далее давайте узнаем, как загружать файлы в облачное хранилище.