- بفهمید که درایو چه ابردادههایی را مدیریت میکند (نام، برچسبها، متن قابل فهرستبندی و تصاویر کوچک) و چه ابردادههایی متعلق به سایر سرویسهای Google Cloud هستند.
- از Drive API برای پرسوجو و تنظیم فرادادهها استفاده کنید؛ قبل از آپلود فایلها، دادههای EXIF و جاسازیشده را پاک کنید.
- به محدودیتها و قوانین (تصاویر بندانگشتی، متن قابل فهرستبندی، افزونهها) احترام بگذارید و برای آزمایش محلی REST، با gcloud احراز هویت کنید.
آیا میخواهید متادیتای فایلهای خود را کنترل کنید؟ گوگل درایو و نمیدانید از کجا شروع کنید؟ در اینجا به تفصیل توضیح میدهیم، نحوه حذف مؤثر و ایمن ابردادهها در گوگل درایو (فراداده فایلهای آپلود شده). ما همچنین به شما میگوییم که گوگل چه محدودیتهایی بر نام، اندازه و مجوزهای فایل اعمال میکند.
این راهنما به شما درک کامل و واقعبینانهای از آنچه که میتوان (و نمیتوان) در مورد ابردادهها در گوگل درایو «حذف» کرد، میدهد.
چه چیزهایی را میتوان در درایو تغییر داد یا «حذف» کرد
Estos پسر لوس فراداده که میتوانند از فایلهای آپلود شده در گوگل درایو حذف شوند:
نام و پسوند: هنگام ایجاد فایل از طریق API، ایده خوبی است که پسوند را در فیلد نام مشخص کنید، برای مثال، "cat.jpg". اگر نوع MIME را مشخص نکنید، Drive میتواند پسوند را از آن استنباط کند، اما بهتر است خودتان آن را تعریف کنید. در پاسخهای بعدی، ممکن است یک fileExtension فقط خواندنی با پسوندی که from name پر شده است، ظاهر شود. اگر کاربری فایل را دانلود کند، Drive نام نهایی را از عنوان (و پسوند آن) کامپایل میکند.
- متن قابل فهرستبندی (contentHints.indexableText): درایو به طور پیشفرض اسناد و انواع رایج (PDFها، تصاویر دارای قابلیت OCR و غیره) را فهرستبندی میکند. اگر برنامه شما فرمتهای دیگری (نقشهها، ویدیوها، میانبرها) را ذخیره میکند، میتوانید متن قابل فهرستبندی را برای بهبود جستجو ارائه دهید. این متن به صورت HTML پردازش میشود: اگر رشتهای حاوی برچسبها ارسال کنید، محتوای متنی فهرستبندی میشود، نه ویژگیهای برچسب. محدودیت اندازه ۱۲۸ کیلوبایت برای contentHints.indexableText وجود دارد و توصیه میشود که آن را در هر ذخیره بهروزرسانی کنید و آن را مرتبط با فایل نگه دارید.
- تصاویر کوچک (contentHints.thumbnail): درایو برای انواع مختلف تصاویر بندانگشتی ایجاد میکند، اما برای فرمتهایی که به طور خودکار آنها را تولید نمیکنند، میتوانید هنگام ایجاد یا بهروزرسانی فایل، تصویر خود را آپلود کنید. باید تصویر را روی URL-safe base64 و mimeType مربوطه تنظیم کنید. قوانین کلیدی: فرمتهای پشتیبانیشده PNG، GIF یا JPG هستند؛ عرض توصیهشده ۱۶۰۰ پیکسل (حداقل ۲۲۰ پیکسل) و حداکثر اندازه ۲ مگابایت است. تصاویر بندانگشتی با تغییر محتوای فایل نامعتبر میشوند؛ تغییرات فراداده اینطور نیستند.
- دسترسی به تصاویر کوچک: فیلد ThumbnailLink یک URL کوتاه را برمیگرداند که فقط در صورتی قابل دسترسی است که برنامه اجازه خواندن فایل را داشته باشد (اگر عمومی نیست، باید آن را با اعتبارنامه درخواست کنید). میتوانید آن را برای یک فایل خاص یا برای لیستی که بر اساس نوع فیلتر شده است، جستجو کنید.
- برچسبها: درایو به شما امکان میدهد برچسبها را به فایلها مرتبط کنید. برای یافتن آنها، میتوانید از files.listLabels استفاده کنید و برای تغییر آنها، باید labelId و fileId مربوطه را ارجاع دهید. این مکانیزم برای دستهبندی و در صورت لزوم، «پاکسازی» طبقهبندیهای ناخواسته بدون دست زدن به محتوا مفید است.
حذف فراداده در گوگل درایو: فراداده «پنهان» از خود فایل
هیچ دکمه جادویی برای حذف فرادادهها در گوگل درایو (مانند EXIF در عکسها یا دادههای جاسازیشده در فایلهای PDF) وجود ندارد. درایو فرادادههای خود را مدیریت میکند، اما فرادادههای درون فایل به ابزاری که آن را ایجاد کرده است بستگی دارد.
عمل توصیه شده این است قبل از آپلود کردن فایل در درایو، آن را پاک کنید، با استفاده از ابزارهای سیستمی یا برنامههای تخصصی که دادههای EXIF را از تصاویر یا ویژگیهای سند حذف میکنند. به این ترتیب، محتوایی که در Drive ذخیره میکنید "پاکسازی شده" میشود.
اگر از قبل فایلهایی با فرادادههای جاسازیشده آپلود کردهاید، به جای حذف فرادادهها در گوگل درایو، راحتتر است. دانلود، تمیز کردن و دوباره آپلود کردن، در صورت لزوم، جایگزین کردن نسخه اصلی. در مورد فایلهای PDF یا تصاویر، این کار معمولاً زمانی انجام میشود که میخواهید از نام نویسنده، مکان یا تاریخچه ویرایش محافظت کنید.
برای بخش خاصی از Drive، تمرکز روی تنظیم نام، برچسبها و نکات محتوا (متن قابل فهرستبندی/تصویر بندانگشتی) که تحت کنترل شما هستند. اگر مجوزهای دسترسی را نیز مدیریت کنید، میزان نمایش فرادادههای قابل مشاهده (مثلاً لینکهای کوچک که برای افرادی که حق خواندن دارند قابل دسترسی هستند) را نیز کاهش میدهید.
آن را فراموش نکن فقط تغییر دادن متادیتای درایو، ویژگیهای EXIF یا داخلی را حذف نمیکند. بنابراین، استراتژی شما باید پیشپاکسازی فایل را با مدیریت دقیق فرادادههایی که درایو به شما اجازه دسترسی میدهد، ترکیب کند.
ابردادههای رایج در گوگل کلود: ماشینهای مجازی، جیکلاود و محدودیتها
اگر با Google Cloud کار کنید، موارد زیادی را خواهید دید. راهنماهایی در مورد «ابرداده» که در واقع به موتور محاسباتی یا فضای ذخیرهسازی ابری اشاره دارند، نه درایو. با این حال، شما باید این نکات را بدانید تا هنگام تحقیق آنها را با هم قاطی نکنید.
پیکربندی اولیه رابط خط فرمان gcloud
پس از نصب رابط خط فرمان گوگل کلود (Google Cloud CLI)، با دستور زیر مقداردهی اولیه را انجام دهید:
gcloud init
مهم است که مطمئن شوید آخرین نسخه را به همراه موارد زیر دارید:
gcloud components update
اگر از یک ارائه دهنده هویت خارجی استفاده میکنید، قبل از کار با gcloud، با هویت فدرال خود وارد شوید، مخصوصاً اگر میخواهید برای برقراری تماسهای REST از محیط محلی خود احراز هویت کنید. نمونههای REST API میتوانند از اعتبارنامههایی که در gcloud پیکربندی کردهاید استفاده کنند.
VM ها
مجوزها و نقشها (موتور محاسباتی): برای افزودن، بهروزرسانی یا حذف فرادادههای سفارشی در ماشینهای مجازی، به مجوزهای IAM مناسب نیاز دارید. نمونههای رایج عبارتند از:
- اگر ماشینهای مجازی شما از حسابهای سرویس استفاده میکنند: مجوز
iam.serviceAccounts.actAsدر حساب سرویس یا پروژه. - فراداده پروژه:
compute.projects.getycompute.projects.setCommonInstanceMetadata. - فرادادههای منطقهای:
compute.instanceSettings.getycompute.instanceSettings.updateبرای منطقه مربوطه - فراداده نمونه:
compute.instances.getycompute.instances.setMetadata.
محدودیت ها
اینها محدودیتهای اصلی هستند که هنگام تلاش برای حذف ابرداده در Google Drive با آنها مواجه شدیم:
- محدودیتهای اندازه (موتور محاسباتی): مجموع ورودیهای فراداده به ۵۱۲ کیلوبایت محدود میشود. هر کلید به ۱۲۸ بایت و هر مقدار به ۲۵۶ کیلوبایت محدود میشود. برای مثال، اگر از کلید ssh-keys استفاده کنید و از حد مجاز ۲۵۶ کیلوبایت تجاوز کنید، تا زمان پاکسازی نمیتوانید کلیدهای بیشتری اضافه کنید.
- حروف بزرگ و کوچک: کلیدها به حروف کوچک و بزرگ حساس هستند؛ مقادیر نیز به جز مقادیر بولی حساس هستند. در zonal، نمیتوانید دو کلید ایجاد کنید که فقط در حروف کوچک و بزرگ متفاوت باشند (zonal-metadata-key در مقابل ZONAL-METADATA-KEY).
- فرادادههای منطقهای: با استفاده از gcloud یا REST تنظیم یا حذف میشوند. شما نمیتوانید مقادیر منطقهای را برای کلیدهای SSH (ssh-keys) تعریف کنید. در دایرکتوری منطقی project/، اگر مقادیر سطح پروژه و منطقهای برای یک کلید وجود داشته باشد، مقدار منطقهای در منطقه خود اولویت دارد.
- مقادیر بولی پشتیبانی شده: علاوه بر TRUE/FALSE، میتوانید از Y/Yes/1 و N/No/0 (بدون حساسیت به حروف بزرگ و کوچک) استفاده کنید.
- محدودههای پیکربندی (موتور محاسباتی):
- پروژه: فراداده مشترک برای همه ماشینهای مجازی در پروژه.
- منطقه ای: ورودیهایی که بر تمام ماشینهای مجازی در یک منطقه خاص تأثیر میگذارند و میتوانند ارزش پروژه را نادیده بگیرند.
- مثال: فراداده برای یک ماشین مجازی خاص (در حال ایجاد یا از قبل موجود).

تصاویر بندانگشتی، فهرستبندی و بازیابی فراداده در درایو (REST و بهترین شیوهها)
حالا بیایید به نقش تصاویر کوچک هنگام حذف ابرداده در گوگل درایو نگاهی بیندازیم و همچنین بهترین راه برای بازیابی آنها را بررسی کنیم:
- احراز هویت برای REST در محل: اگر نمونههای REST را از دستگاه خود آزمایش میکنید، از اعتبارنامههای پیکربندیشده با gcloud استفاده کنید. به این ترتیب، فراخوانیهای Drive API شما به هویت و مجوزهایی که قبلاً تنظیم کردهاید، احترام میگذارند.
- آپلود تصویر بندانگشتی سفارشی: contentHints.thumbnail را با دو فیلد تنظیم کنید: تصویر base64 ایمن برای URL و mimeType صحیح. اگر Drive بتواند به طور خودکار یک تصویر کوچک ایجاد کند، از تصویر کوچک خودش استفاده میکند و تصویر کوچک شما را نادیده میگیرد. در غیر این صورت، از تصویری که شما ارائه میدهید استفاده خواهد کرد.
قوانین کلیدی برای تصاویر بندانگشتی در درایو:
- فرمتها: PNG، GIF یا JPG.
- عرض پیشنهادی: ۱۶۰۰ پیکسل (حداقل ۲۲۰ پیکسل).
- حداکثر حجم: 2 مگابایت
- اگر هنوز مرتبط است، تصویر کوچک را با هر ذخیره بهروزرسانی کنید.
مهم در مورد باطل سازی: تصاویر بندانگشتی با تغییر محتوای فایل نامعتبر میشوند؛ اما تغییرات فراداده نامعتبر نمیشوند. اگر فقط برچسبها یا نام را تغییر دهید، انتظار تصویر بندانگشتی جدید را نداشته باشید، مگر اینکه فایل را اصلاح کنید.
متن قابل فهرست بندی
سعی نکنید جستجو را با کلمات کلیشهای «فریب» دهید. مفاهیم و اصطلاحاتی را که یک کاربر به طور منطقی برای آن فایل جستجو میکند، ثبت کنید، و محدودیت ۱۲۸ کیلوبایت را بررسی کنید. هر زمان که محتوا به طور قابل توجهی تغییر کرد، آن را بهروزرسانی کنید.
نامها و پسوندهای ثابتی را اعمال کنیدهر زمان که امکان داشت، هنگام آپلود، پسوند را در نام بگنجانید؛ اگر وجود نداشته باشد، درایو سعی میکند آن را از طریق MIME تشخیص دهد. واضح نگه داشتن نامها از ابهامات جلوگیری میکند و امکان جستجوی آسانتر پسوندها را فراهم میکند.
برچسبها در درایو
برای تغییر برچسبها، شناسههای لازم را یادداشت کنید. به labelId مربوط به برچسب و fileId مربوط به فایل نیاز خواهید داشت. میتوانید ابتدا آنها را با files.listLabels فهرست کنید و سپس تغییرات مربوطه را در فایل مقصد اعمال کنید.
// Al modificar etiquetas de un archivo en Drive:
// - labelId: identificador de la etiqueta a cambiar
// - fileId: identificador del archivo al que aplicas la etiqueta
// Usa files.listLabels para localizarlas antes de actualizar.
به یاد داشته باش، اگرچه درایو محور اصلی است، اما بسیاری از پیشرفتها درایو را با فضای ذخیرهسازی ابری یا سایر سرویسها ترکیب میکنند، از این رو، نمونههایی از Storage را برای بررسی ویژگیهای شیء مشاهده خواهید کرد.
// Ejemplo en Go para obtener atributos de un objeto en Cloud Storage (no Drive)
// e imprimir metadatos como ContentType, CacheControl, MD5, etc.
// Útil si tu flujo sube primero a Storage y luego a Drive.
import (
"context"
"fmt"
"io"
"time"
"cloud.google.com/go/storage"
)
func getMetadata(w io.Writer, bucket, object string) (*storage.ObjectAttrs, error) {
ctx := context.Background()
client, err := storage.NewClient(ctx)
if err != nil { return nil, fmt.Errorf("storage.NewClient: %w", err) }
defer client.Close()
ctx, cancel := context.WithTimeout(ctx, 10*time.Second)
defer cancel()
o := client.Bucket(bucket).Object(object)
attrs, err := o.Attrs(ctx)
if err != nil { return nil, fmt.Errorf("Object(%q).Attrs: %w", object, err) }
fmt.Fprintf(w, "Bucket: %v\n", attrs.Bucket)
fmt.Fprintf(w, "CacheControl: %v\n", attrs.CacheControl)
fmt.Fprintf(w, "ContentDisposition: %v\n", attrs.ContentDisposition)
fmt.Fprintf(w, "ContentEncoding: %v\n", attrs.ContentEncoding)
fmt.Fprintf(w, "ContentLanguage: %v\n", attrs.ContentLanguage)
fmt.Fprintf(w, "ContentType: %v\n", attrs.ContentType)
fmt.Fprintf(w, "Crc32c: %v\n", attrs.CRC32C)
fmt.Fprintf(w, "Generation: %v\n", attrs.Generation)
fmt.Fprintf(w, "KmsKeyName: %v\n", attrs.KMSKeyName)
fmt.Fprintf(w, "Md5Hash: %v\n", attrs.MD5)
fmt.Fprintf(w, "MediaLink: %v\n", attrs.MediaLink)
fmt.Fprintf(w, "Metageneration: %v\n", attrs.Metageneration)
fmt.Fprintf(w, "Name: %v\n", attrs.Name)
fmt.Fprintf(w, "Size: %v\n", attrs.Size)
fmt.Fprintf(w, "StorageClass: %v\n", attrs.StorageClass)
fmt.Fprintf(w, "TimeCreated: %v\n", attrs.Created)
fmt.Fprintf(w, "Updated: %v\n", attrs.Updated)
fmt.Fprintf(w, "Event-based hold enabled? %t\n", attrs.EventBasedHold)
fmt.Fprintf(w, "Temporary hold enabled? %t\n", attrs.TemporaryHold)
fmt.Fprintf(w, "Retention expiration time %v\n", attrs.RetentionExpirationTime)
fmt.Fprintf(w, "Custom time %v\n", attrs.CustomTime)
fmt.Fprintf(w, "Retention: %+v\n", attrs.Retention)
fmt.Fprintf(w, "\n\nMetadata\n")
for key, value := range attrs.Metadata {
fmt.Fprintf(w, "\t%v = %v\n", key, value)
}
return attrs, nil
}
حذف فایلها در مقابل حذف متادیتا در گوگل درایو
اگر آنچه شما می خواهید است حذف فایل از درایوبه عنوان مالک، میتوانید با کلیک راست و انتخاب «انتقال به سطل زباله» آن را از وب به سطل زباله منتقل کنید. اگر مالک شخص دیگری است، فقط میتوانید فایل را از نمای خود «حذف» کنید؛ دیگران همچنان میتوانند آن را ببینند.
به برای حذف دائمی یک فایل، باید سطل زباله را خالی کنید یا از گزینه حذف دائمی استفاده کنید. در این صورت، شما قادر به بازیابی آن نخواهید بود. این به خودی خود، «فراداده» را از فایلهای دیگر حذف نمیکند - فقط برای آن مورد اعمال میشود.
شما نمیتوانید فرادادههای فایلهایی که مالک آنها نیستید را در گوگل درایو حذف کنید، زیرا کنترل آنها متعلق به شخصی است که آنها را ایجاد کرده یا به شخصی با مجوزهای بالاتر در سازمان تعلق دارد. در این موارد، شما به سادگی دسترسی یا قابلیت مشاهده خود را حذف میکنید.
ارتباط آن با فراداده: حذف یک فایل، متادیتای آن را در درایو به همراه آن حذف میکند، اما بر فرادادههای موجود در نسخههای دیگر یا فرادادههای جاسازیشده در سایر اسنادی که در سیستم باقی ماندهاند، تأثیری نمیگذارد.
با تمام موارد فوق، اکنون میتوانید به خوبی تمایز قائل شوید چه فرادادههایی توسط درایو کنترل میشوند (نام، برچسبها، نکات جستجو و تصاویر کوچک)، چگونه از طریق REST از آنها پرس و جو کنیم، بهترین شیوههای پاکسازی دادههای جاسازی شده قبل از آپلود چیست، و چه محدودیتها و مجوزهایی هنگام برخورد با اسناد Google Cloud که در مورد «ابرداده» در زمینههای دیگر صحبت میکند، به کار میآیند.
ویراستار متخصص در مسائل فناوری و اینترنت با بیش از ده سال تجربه در رسانه های مختلف دیجیتال. من به عنوان ویراستار و تولید کننده محتوا برای شرکت های تجارت الکترونیک، ارتباطات، بازاریابی آنلاین و تبلیغات کار کرده ام. من همچنین در وب سایت های اقتصاد، دارایی و سایر بخش ها نوشته ام. کار من نیز علاقه من است. اکنون، از طریق مقالات من در Tecnobits، سعی می کنم تمام اخبار و فرصت های جدیدی را که دنیای فناوری هر روز برای بهبود زندگی مان به ما ارائه می دهد، کشف کنم.