Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

استخدم البيانات الوصفية للملف مع Cloud Storage على الويب

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

بعد تحميل ملف إلى مرجع Cloud Storage ، يمكنك أيضًا الحصول على البيانات الوصفية للملف أو تحديثها ، على سبيل المثال لتحديث نوع المحتوى. يمكن للملفات أيضًا تخزين أزواج مفتاح / قيمة مخصصة مع بيانات تعريف إضافية للملفات.

احصل على البيانات الوصفية للملف

تحتوي البيانات الأولية للملف على خصائص عامة مثل name size ونوع contentType (يشار إليه غالبًا باسم نوع MIME) بالإضافة إلى بعض العناصر الأقل شيوعًا مثل contentDisposition timeCreated . يمكن استرداد هذه البيانات الوصفية من مرجع Cloud Storage باستخدام طريقة getMetadata() . getMetadata() يحتوي على البيانات الوصفية الكاملة ، أو يعرض خطأ إذا Promise Promise

Web version 9

import { getStorage, ref, getMetadata } from "firebase/storage";

// Create a reference to the file whose metadata we want to retrieve
const storage = getStorage();
const forestRef = ref(storage, 'images/forest.jpg');

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

Web version 8

// 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((metadata) => {
    // Metadata now contains the metadata for 'images/forest.jpg'
  })
  .catch((error) => {
    // Uh-oh, an error occurred!
  });

تحديث البيانات الوصفية للملف

يمكنك تحديث البيانات الوصفية للملف في أي وقت بعد اكتمال تحميل الملف باستخدام طريقة updateMetadata() . الرجوع إلى القائمة الكاملة لمزيد من المعلومات حول الخصائص التي يمكن تحديثها. يتم تحديث الخصائص المحددة في البيانات الوصفية فقط ، ويتم ترك جميع الخصائص الأخرى بدون تعديل. updateMetadata() يحتوي على البيانات الوصفية الكاملة ، أو يعرض خطأ إذا Promise Promise

Web version 9

import { getStorage, ref, updateMetadata } from "firebase/storage";

// Create a reference to the file whose metadata we want to change
const storage = getStorage();
const forestRef = ref(storage, 'images/forest.jpg');

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

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

Web version 8

// 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((metadata) => {
    // Updated metadata for 'images/forest.jpg' is returned in the Promise
  }).catch((error) => {
    // Uh-oh, an error occurred!
  });

يمكنك حذف خاصية البيانات الوصفية عن طريق تعيينها على قيمة null :

Web version 9

import { getStorage, ref, updateMetadata } from "firebase/storage";

const storage = getStorage();
const forestRef = ref(storage, 'images/forest.jpg');

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

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

Web version 8

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

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

معالجة الأخطاء

هناك عدد من الأسباب لحدوث أخطاء عند الحصول على البيانات الوصفية أو تحديثها ، بما في ذلك الملف غير الموجود ، أو عدم حصول المستخدم على إذن للوصول إلى الملف المطلوب. يمكن العثور على مزيد من المعلومات حول الأخطاء في قسم معالجة الأخطاء في المستندات.

البيانات الوصفية المخصصة

يمكنك تحديد البيانات الأولية المخصصة ككائن يحتوي على خصائص String .

Web version 9

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

Web version 8

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

يمكنك استخدام البيانات الوصفية المخصصة لتخزين بيانات إضافية خاصة بالتطبيق لكل ملف ، لكننا نوصي بشدة باستخدام قاعدة بيانات (مثل قاعدة بيانات Firebase Realtime ) لتخزين ومزامنة هذا النوع من البيانات.

خصائص ملف البيانات الوصفية

تتوفر قائمة كاملة بخصائص البيانات الوصفية في ملف أدناه:

خاصية يكتب قابل للكتابة
bucket سلسلة رقم
generation سلسلة رقم
metageneration سلسلة رقم
fullPath سلسلة رقم
name سلسلة رقم
size رقم رقم
timeCreated سلسلة رقم
updated سلسلة رقم
md5Hash سلسلة نعم عند التحميل ، لا عند التحديث البيانات الوصفية
cacheControl سلسلة نعم
contentDisposition سلسلة نعم
contentEncoding سلسلة نعم
contentLanguage سلسلة نعم
contentType سلسلة نعم
customMetadata كائن يحتوي على سلسلة -> تعيينات السلسلة نعم

يعد تحميل الملفات وتنزيلها وتحديثها أمرًا مهمًا ، ولكن يمكنك أيضًا إزالتها. دعنا نتعلم كيفية حذف الملفات من التخزين السحابي.