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

在Web上使用文件元數據

將文件上傳到Cloud Storage參考之後,您還可以獲取或更新文件元數據,例如更新內容類型。文件還可以存儲帶有其他文件元數據的自定義鍵/值對。

獲取文件元數據

文件元數據除包含諸如contentDispositiontimeCreated類的不太常見的屬性外,還包含諸如namesizecontentType (通常稱為MIME類型)之類的公共timeCreated 。可以使用getMetadata()方法從Cloud Storage引用中檢索此元數據。 getMetadata()返回包含完整元數據的Promise ,如果Promise拒絕,則返回錯誤。

// Create a reference to the file whose metadata we want to retrieve
var forestRef = storageRef.child('images/forest.jpg');

// Get metadata properties
forestRef.getMetadata().then(function(metadata) {
  // Metadata now contains the metadata for 'images/forest.jpg'
}).catch(function(error) {
  // Uh-oh, an error occurred!
});

更新文件元數據

您可以在文件上傳完成後隨時使用updateMetadata()方法更新文件元數據。請參閱完整列表 ,以獲取有關可以更新哪些屬性的更多信息。僅更新元數據中指定的屬性,所有其他屬性保持不變。 updateMetadata()返回包含完整元數據的Promise ,如果Promise拒絕,則返回錯誤。

// Create a reference to the file whose metadata we want to change
var forestRef = storageRef.child('images/forest.jpg');

// Create file metadata to update
var newMetadata = {
  cacheControl: 'public,max-age=300',
  contentType: 'image/jpeg'
}

// Update metadata properties
forestRef.updateMetadata(newMetadata).then(function(metadata) {
  // Updated metadata for 'images/forest.jpg' is returned in the Promise
}).catch(function(error) {
  // Uh-oh, an error occurred!
});

您可以通過將元數據屬性設置為null來刪除它:

// Create file metadata with property to delete
var deleteMetadata = {
  contentType: null
}

// Delete the metadata property
forestRef.updateMetadata(deleteMetadata).then(function(metadata) {
  // metadata.contentType should be null
}).catch(function(error) {
  // Uh-oh, an error occurred!
});

處理錯誤

有多種原因導致獲取或更新元數據時可能發生錯誤,包括文件不存在或用戶無權訪問所需文件。有關錯誤的更多信息,請參見文檔的“ 處理錯誤”部分。

自定義元數據

您可以將自定義元數據指定為包含String屬性的對象。

var metadata = {
  customMetadata: {
    'location': 'Yosemite, CA, USA',
    'activity': 'Hiking'
  }
}

您可以使用自定義元數據為每個文件存儲其他應用程序特定的數據,但是我們強烈建議使用數據庫(例如Firebase Realtime Database )來存儲和同步此類數據。

文件元數據屬性

以下是文件上元數據屬性的完整列表:

屬性類型可寫的
bucket 沒有
generation 沒有
metageneration 沒有
fullPath 沒有
name 沒有
size 沒有
timeCreated 沒有
updated 沒有
md5Hash 上載為YES,updateMetadata否
cacheControl
contentDisposition
contentEncoding
contentLanguage
contentType
customMetadata 包含字符串->字符串映射的對象

上載,下載和更新文件很重要,但是能夠刪除它們也很重要。讓我們學習如何從Cloud Storage中刪除文件