بعد تحميل ملف إلى مرجع Cloud Storage، يمكنك أيضًا الحصول على أو تعديل البيانات الوصفية للملف، مثل تعديل نوع المحتوى Files من Google أيضًا تخزين أزواج المفتاح/القيمة المخصصة مع بيانات وصفية إضافية للملفات.
الحصول على البيانات الوصفية للملف
تحتوي البيانات الوصفية للملفات على سمات شائعة، مثل name
وsize
contentType
(ويُشار إليه غالبًا باسم نوع MIME) بالإضافة إلى بعض
الشائعة مثل contentDisposition
وtimeCreated
. يمكن أن تكون بيانات التعريف هذه
التي تم استردادها من مرجع Cloud Storage باستخدام
طريقة getMetadata()
. تعرض الدالة getMetadata()
القيمة Promise
التي تحتوي على
اكتمال البيانات الوصفية، أو حدوث خطأ إذا تم رفض Promise
.
Web
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
// 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
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
// 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
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
// 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
const metadata = { customMetadata: { 'location': 'Yosemite, CA, USA', 'activity': 'Hiking' } };
Web
var metadata = { customMetadata: { 'location': 'Yosemite, CA, USA', 'activity': 'Hiking' } };
يمكنك استخدام بيانات وصفية مخصصة لتخزين بيانات إضافية خاصة بالتطبيق ولكننا ننصح بشدة باستخدام قاعدة بيانات (مثل قاعدة بيانات Firebase في الوقت الفعلي) لتخزين هذا النوع من البيانات ومزامنته.
خصائص البيانات الوصفية للملفات
تتوفر قائمة كاملة بسمات البيانات الوصفية في ملف أدناه:
الموقع | النوع | قابلة للكتابة |
---|---|---|
bucket |
السلسلة | لا |
generation |
السلسلة | لا |
metageneration |
السلسلة | لا |
fullPath |
السلسلة | لا |
name |
السلسلة | لا |
size |
رقم | لا |
timeCreated |
السلسلة | لا |
updated |
السلسلة | لا |
md5Hash |
السلسلة | نعم عند التحميل، لا على updateMetadata |
cacheControl |
السلسلة | نعم |
contentDisposition |
السلسلة | نعم |
contentEncoding |
السلسلة | نعم |
contentLanguage |
السلسلة | نعم |
contentType |
السلسلة | نعم |
customMetadata |
كائن يحتوي على تعيينات السلسلة->السلاسل | نعم |
إن تحميل الملفات وتنزيلها وتحديثها أمر مهم، وكذلك القدرة على لإزالتها. لنتعلم كيفية حذف الملفات من Cloud Storage.