- ทำความเข้าใจว่าไดรฟ์จัดการข้อมูลเมตาใดบ้าง (ชื่อ แท็ก indexableText และภาพขนาดย่อ) และข้อมูลเมตาใดบ้างที่เป็นของบริการ Google Cloud อื่นๆ
- ใช้ Drive API เพื่อค้นหาและปรับแต่งข้อมูลเมตา ทำความสะอาด EXIF และข้อมูลที่ฝังไว้ก่อนอัปโหลดไฟล์
- เคารพข้อจำกัดและกฎเกณฑ์ (ภาพขนาดย่อ ข้อความที่สามารถสร้างดัชนีได้ ส่วนขยาย) และรับรองความถูกต้องด้วย gcloud สำหรับการทดสอบ REST ในเครื่อง
คุณต้องการควบคุมข้อมูลเมตาของไฟล์ของคุณหรือไม่ Google ไดรฟ์ และไม่รู้จะเริ่มต้นตรงไหน? เรามาอธิบายอย่างละเอียดกันตรงนี้ วิธีลบข้อมูลเมตาใน Google Drive อย่างมีประสิทธิภาพและปลอดภัย (ข้อมูลเมตาของไฟล์ที่อัปโหลด) เรายังบอกคุณด้วยว่า Google กำหนดข้อจำกัดอะไรบ้างเกี่ยวกับชื่อไฟล์ ขนาด และสิทธิ์อนุญาต
คู่มือนี้จะช่วยให้คุณเข้าใจอย่างครบถ้วนและสมจริงว่าอะไรที่สามารถ "ลบ" ได้ (และไม่สามารถ" ลบ" ได้) เมื่อพูดถึงข้อมูลเมตาใน Google ไดรฟ์
สิ่งที่สามารถเปลี่ยนแปลงหรือ “ลบ” ในไดรฟ์ได้
เหล่านี้คือ เมตาดาต้า ที่สามารถลบออกจากไฟล์ที่อัพโหลดไปยัง Google Drive ได้:
ชื่อและนามสกุล: เมื่อสร้างไฟล์ผ่าน API ขอแนะนำให้ระบุนามสกุลไฟล์ในช่องชื่อ เช่น "cat.jpg" Drive สามารถอนุมานนามสกุลไฟล์จากประเภท MIME ได้ หากคุณไม่ได้ระบุ แต่ควรกำหนดเองจะดีกว่า ในการตอบกลับครั้งต่อๆ ไป ส่วนขยายไฟล์แบบอ่านอย่างเดียวอาจปรากฏขึ้นพร้อมนามสกุลไฟล์ที่เติมจากชื่อ หากผู้ใช้ดาวน์โหลดไฟล์ Drive จะคอมไพล์ชื่อสุดท้ายจากชื่อเรื่อง (และนามสกุลไฟล์)
- ข้อความที่สามารถสร้างดัชนีได้ (contentHints.indexableText): Drive จะจัดทำดัชนีเอกสารและประเภทไฟล์ทั่วไป (ไฟล์ PDF, รูปภาพที่เปิดใช้งาน OCR ฯลฯ) ตามค่าเริ่มต้น หากแอปของคุณบันทึกไฟล์ในรูปแบบอื่นๆ (ภาพวาด วิดีโอ ทางลัด) คุณสามารถใส่ข้อความที่จัดทำดัชนีได้เพื่อปรับปรุงการค้นหา ข้อความนี้จะถูกประมวลผลเป็น HTML: หากคุณส่งสตริงที่มีแท็ก เนื้อหาข้อความจะถูกจัดทำดัชนี ไม่ใช่แอตทริบิวต์ของแท็ก ไฟล์ contentHints.indexableText มีขนาดจำกัดที่ 128KB และขอแนะนำให้คุณอัปเดตทุกครั้งที่บันทึก และรักษาความเกี่ยวข้องกับไฟล์
- ภาพขนาดย่อ (contentHints.thumbnail): ไดรฟ์สร้างภาพขนาดย่อสำหรับหลายประเภท แต่สำหรับรูปแบบที่ไม่ได้สร้างภาพโดยอัตโนมัติ คุณสามารถอัปโหลดภาพของคุณเองได้เมื่อสร้างหรืออัปเดตไฟล์ คุณต้องตั้งค่าภาพเป็น URL-safe base64 และ mimeType ที่เกี่ยวข้อง กฎสำคัญ: รูปแบบที่รองรับคือ PNG, GIF หรือ JPG; ความกว้างที่แนะนำคือ 1600 พิกเซล (ขั้นต่ำ 220 พิกเซล) และขนาดสูงสุดคือ 2MB ภาพขนาดย่อจะไม่สามารถใช้ได้เมื่อเนื้อหาไฟล์เปลี่ยนแปลง แต่การเปลี่ยนแปลงข้อมูลเมตาจะไม่มีผล
- การเข้าถึงภาพขนาดย่อ: ฟิลด์ ThumbnailLink จะแสดง URL สั้นๆ ซึ่งเข้าถึงได้เฉพาะเมื่อแอปมีสิทธิ์อ่านไฟล์ (หากไม่เป็นสาธารณะ คุณจะต้องขอด้วยข้อมูลประจำตัว) คุณสามารถค้นหาไฟล์ที่ต้องการหรือรายการที่กรองตามประเภทได้
- ป้ายกำกับ: Drive ช่วยให้คุณเชื่อมโยงป้ายกำกับกับไฟล์ได้ ในการค้นหาป้ายกำกับ คุณสามารถใช้ files.listLabels และในการแก้ไขป้ายกำกับ คุณต้องอ้างอิง labelId และ fileId ที่เกี่ยวข้อง กลไกนี้มีประโยชน์สำหรับการจัดหมวดหมู่ และหากจำเป็น สามารถ "ล้าง" การจัดหมวดหมู่ที่ไม่ต้องการโดยไม่ต้องแก้ไขเนื้อหา
ลบข้อมูลเมตาใน Google Drive: ข้อมูลเมตาที่ "ซ่อน" ไว้จากไฟล์นั้นเอง
ไม่มีปุ่มวิเศษสำหรับลบข้อมูลเมตาใน Google Drive (เช่น EXIF ในรูปภาพหรือข้อมูลที่ฝังอยู่ใน PDF) Drive จัดการข้อมูลเมตาของตัวเอง แต่ข้อมูลเมตาภายในไฟล์จะขึ้นอยู่กับเครื่องมือที่สร้างไฟล์นั้น
แนวทางปฏิบัติที่แนะนำคือ ทำความสะอาดไฟล์ก่อนอัปโหลดไปยังไดรฟ์ การใช้เครื่องมือระบบหรือแอปเฉพาะทางที่ลบข้อมูล EXIF ออกจากรูปภาพหรือคุณสมบัติของเอกสาร วิธีนี้จะทำให้เนื้อหาที่คุณบันทึกไว้ในไดรฟ์ได้รับการ "ทำความสะอาด"
หากคุณมีไฟล์ที่อัปโหลดพร้อมข้อมูลเมตาที่ฝังไว้แล้ว แทนที่จะลบข้อมูลเมตาใน Google Drive จะสะดวกกว่า ดาวน์โหลด ทำความสะอาด และอัปโหลดอีกครั้ง แทนที่ต้นฉบับหากจำเป็น สำหรับไฟล์ PDF หรือรูปภาพ นี่เป็นเรื่องปกติเมื่อคุณต้องการปกป้องข้อมูลผู้แต่ง สถานที่ หรือประวัติการแก้ไข
สำหรับส่วนเฉพาะของไดรฟ์ เน้นการปรับแต่งชื่อ ป้ายกำกับ และคำแนะนำเนื้อหา (indexableText/thumbnail) ที่อยู่ภายใต้การควบคุมของคุณ หากคุณจัดการสิทธิ์การเข้าถึงด้วย คุณก็สามารถลดการเปิดเผยข้อมูลเมตาที่มองเห็นได้ (เช่น ลิงก์รูปขนาดย่อที่เข้าถึงได้สำหรับผู้ที่มีสิทธิ์อ่าน) ได้ด้วย
อย่าลืมนะ การเปลี่ยนแปลงเฉพาะข้อมูลเมตาของไดรฟ์จะไม่ลบ EXIF หรือคุณสมบัติภายใน ดังนั้น กลยุทธ์ของคุณควรผสมผสานการทำความสะอาดไฟล์ล่วงหน้ากับการจัดการข้อมูลเมตาแบบละเอียดที่ Drive อนุญาตให้คุณใช้งานได้
เมตาดาต้าที่มักสับสนใน Google Cloud: VMs, gcloud และ limits
หากคุณทำงานกับ Google Cloud คุณจะเห็นสิ่งต่างๆ มากมาย คำแนะนำเกี่ยวกับ “ข้อมูลเมตา” ที่อ้างอิงถึง Compute Engine หรือ Cloud Storage ไม่ใช่ Drive ถึงอย่างนั้น คุณก็ควรทราบจุดเหล่านี้ เพื่อไม่ให้สับสนเมื่อทำการค้นคว้า
การกำหนดค่า gcloud CLI ขั้นพื้นฐาน
หลังจากติดตั้ง Google Cloud CLI แล้ว ให้เริ่มต้นด้วย:
gcloud init
สิ่งสำคัญคือต้องแน่ใจว่าคุณมีเวอร์ชันล่าสุดพร้อมด้วย:
gcloud components update
หากคุณใช้ผู้ให้บริการข้อมูลประจำตัวภายนอก ลงชื่อเข้าใช้ด้วยข้อมูลประจำตัวแบบรวมของคุณก่อนทำงานกับ gcloud โดยเฉพาะอย่างยิ่งหากคุณกำลังจะตรวจสอบสิทธิ์เพื่อทำการเรียก REST จากสภาพแวดล้อมภายในเครื่องของคุณ ตัวอย่าง REST API สามารถใช้ข้อมูลประจำตัวที่คุณกำหนดค่าไว้ใน gcloud ได้
VMs
การอนุญาตและบทบาท (Compute Engine): หากต้องการเพิ่ม อัปเดต หรือลบข้อมูลเมตาแบบกำหนดเองบน VM คุณต้องมีสิทธิ์ IAM ที่เหมาะสม ตัวอย่างทั่วไปมีดังนี้:
- หาก VM ของคุณใช้บัญชีบริการ: ใบอนุญาต
iam.serviceAccounts.actAsในบัญชีบริการหรือโครงการ - เมตาดาต้าของโครงการ:
compute.projects.getycompute.projects.setCommonInstanceMetadata. - เมตาดาต้าโซน:
compute.instanceSettings.getycompute.instanceSettings.updateสำหรับพื้นที่ที่เกี่ยวข้อง - เมตาข้อมูลอินสแตนซ์:
compute.instances.getycompute.instances.setMetadata.
ข้อ จำกัด
นี่คือข้อจำกัดหลักที่เราพบเมื่อพยายามลบข้อมูลเมตาใน Google Drive:
- ข้อจำกัดขนาด (Compute Engine): รายการเมตาดาต้าทั้งหมดรวมกันมีขนาดสูงสุดที่ 512 KB แต่ละคีย์มีขนาดจำกัดที่ 128 ไบต์ และแต่ละค่ามีขนาดจำกัดที่ 256 KB ตัวอย่างเช่น หากคุณใช้คีย์ ssh-keys และเกินขีดจำกัด 256 KB คุณจะไม่สามารถเพิ่มคีย์ได้อีกจนกว่าจะทำการล้างข้อมูล
- ตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก: คีย์จะคำนึงถึงตัวพิมพ์เล็ก-ใหญ่ ค่าต่างๆ จะคำนึงถึงตัวพิมพ์ใหญ่ด้วย ยกเว้นค่าบูลีน ในโซน คุณไม่สามารถสร้างคีย์สองคีย์ที่ต่างกันแค่ตัวพิมพ์ใหญ่-เล็กได้ (zonal-metadata-key เทียบกับ ZONAL-METADATA-KEY)
- เมตาดาต้าโซน: จะถูกตั้งค่าหรือลบออกโดยใช้ gcloud หรือ REST คุณไม่สามารถกำหนดค่าโซนสำหรับคีย์ SSH (ssh-keys) ได้ ในไดเร็กทอรี project/ เชิงตรรกะ หากคีย์เดียวกันมีค่าระดับโปรเจ็กต์และค่าโซน ค่าโซนจะมีความสำคัญเหนือกว่าในโซนนั้น
- ค่าบูลีนที่รองรับ: นอกจาก TRUE/FALSE แล้ว คุณยังสามารถใช้ Y/Yes/1 และ N/No/0 ได้ (ไม่คำนึงถึงตัวพิมพ์เล็ก/ใหญ่)
- ขอบเขตการกำหนดค่า (Compute Engine):
- โครงการ: เมตาข้อมูลที่ใช้ร่วมกันสำหรับ VM ทั้งหมดในโครงการ
- โซน: รายการที่ส่งผลต่อ VM ทั้งหมดในโซนหนึ่งๆ และสามารถแทนที่ค่าโครงการได้
- ตัวอย่าง: เมตาข้อมูลสำหรับ VM เฉพาะ (ที่กำลังสร้างหรือมีอยู่แล้ว)

ภาพขนาดย่อ การจัดทำดัชนี และการดึงข้อมูลเมตาในไดรฟ์ (REST และแนวทางปฏิบัติที่ดีที่สุด)
มาดูบทบาทของภาพขนาดย่อเมื่อลบข้อมูลเมตาใน Google Drive กัน และวิธีที่ดีที่สุดในการกู้คืนข้อมูล:
- การตรวจสอบสิทธิ์สำหรับ REST ในสถานที่: หากคุณกำลังทดสอบตัวอย่าง REST จากเครื่องของคุณ ให้ใช้ข้อมูลประจำตัวที่กำหนดค่าด้วย gcloud วิธีนี้จะทำให้การเรียกใช้ Drive API ของคุณเป็นไปตามข้อมูลประจำตัวและสิทธิ์ที่คุณกำหนดไว้
- อัพโหลดภาพขนาดย่อที่กำหนดเอง: ตั้งค่า contentHints.thumbnail ด้วยสองฟิลด์: รูปภาพ base64 ที่ปลอดภัยสำหรับ URL และ mimeType ที่ถูกต้อง หาก Drive สามารถสร้างภาพขนาดย่อได้โดยอัตโนมัติ ระบบจะใช้ภาพขนาดย่อของตัวเองและข้ามภาพขนาดย่อของคุณ หากไม่เช่นนั้น ระบบจะใช้ภาพขนาดย่อที่คุณให้มา
กฎสำคัญสำหรับภาพขนาดย่อในไดรฟ์:
- รูปแบบ: PNG, GIF หรือ JPG
- ความกว้างที่แนะนำ: 1600 พิกเซล (ขั้นต่ำ 220 พิกเซล)
- ขนาดสูงสุด: 2MB.
- อัปเดตภาพขนาดย่อทุกครั้งที่บันทึกหากยังเกี่ยวข้อง
สิ่งสำคัญเกี่ยวกับ การทำให้เป็นโมฆะ: ภาพขนาดย่อจะไม่ถูกต้องเมื่อมีการเปลี่ยนแปลงเนื้อหาของไฟล์ แต่การเปลี่ยนแปลงข้อมูลเมตาจะไม่มีผล หากคุณเปลี่ยนเฉพาะแท็กหรือชื่อ อย่าคาดหวังว่าจะได้ภาพขนาดย่อใหม่ เว้นแต่คุณจะแก้ไขไฟล์
ข้อความที่สามารถสร้างดัชนีได้
อย่าพยายาม "หลอก" การค้นหาด้วยคำฮิตๆ รวบรวมแนวคิดและคำศัพท์ที่ผู้ใช้น่าจะค้นหาในไฟล์นั้น และ ตรวจสอบขีดจำกัดขนาด 128KB อัปเดตทุกครั้งที่มีการเปลี่ยนแปลงเนื้อหาอย่างมีนัยสำคัญ
ใช้ชื่อและนามสกุลที่สอดคล้องกันเมื่ออัปโหลด ให้ระบุนามสกุลไฟล์ไว้ในชื่อไฟล์ทุกครั้งที่ทำได้ หากไม่มีนามสกุลไฟล์ ไดรฟ์จะพยายามอนุมานนามสกุลไฟล์นั้นโดยใช้ 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.
จำไว้, แม้ว่า Drive จะเป็นจุดเน้น แต่การพัฒนาหลายอย่างได้รวม Drive เข้ากับ Cloud 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
}
การลบไฟล์เทียบกับการลบข้อมูลเมตาใน Google Drive
หากสิ่งที่คุณต้องการคือ ลบไฟล์จากไดรฟ์ในฐานะเจ้าของ คุณสามารถย้ายไฟล์ไปยังถังขยะจากเว็บไซต์ได้โดยการคลิกขวาและเลือก "ย้ายไปถังขยะ" หากเจ้าของเป็นบุคคลอื่น คุณจะสามารถ "ลบ" ไฟล์ออกจากมุมมองของคุณได้เท่านั้น บุคคลอื่นจะยังคงเห็นไฟล์นั้นได้
ไปยัง หากต้องการลบไฟล์อย่างถาวร คุณต้องล้างถังขยะหรือใช้ตัวเลือกการลบถาวร ในกรณีนี้ คุณจะไม่สามารถกู้คืนได้ การดำเนินการนี้ไม่ได้ "ลบข้อมูลเมตา" ออกจากไฟล์อื่น แต่จะมีผลกับรายการนั้นเท่านั้น
คุณไม่สามารถลบข้อมูลเมตาใน Google Drive จากไฟล์ที่คุณไม่ได้เป็นเจ้าของได้ เพราะการควบคุมของพวกเขาเป็นของผู้สร้าง หรือของบุคคลที่มีสิทธิ์สูงกว่าภายในองค์กร ในกรณีเหล่านี้ คุณเพียงแค่ยกเลิกสิทธิ์การเข้าถึงหรือการมองเห็นของคุณ
เชื่อมโยงกับข้อมูลเมตา: การลบไฟล์จะลบข้อมูลเมตาของไฟล์ในไดรฟ์ไปด้วย แต่จะไม่ส่งผลต่อข้อมูลเมตาในสำเนาอื่นหรือข้อมูลเมตาที่ฝังอยู่ในเอกสารอื่นที่ยังคงอยู่ในระบบ
ด้วยสิ่งที่กล่าวมาทั้งหมดข้างต้น คุณสามารถแยกแยะได้ดีแล้ว เมตาดาต้าใดที่ไดรฟ์ควบคุม (ชื่อ แท็ก คำแนะนำในการค้นหา และภาพขนาดย่อ)วิธีการสอบถามผ่าน REST แนวทางปฏิบัติที่ดีที่สุดที่ต้องปฏิบัติตามเพื่อทำความสะอาดข้อมูลที่ฝังตัวก่อนอัปโหลด และข้อจำกัดและสิทธิ์อนุญาตใดบ้างที่มีผลเมื่อคุณพบเอกสาร Google Cloud ที่พูดถึง "ข้อมูลเมตา" ในบริบทอื่นๆ
บรรณาธิการเชี่ยวชาญด้านเทคโนโลยีและอินเทอร์เน็ตด้วยประสบการณ์มากกว่าสิบปีในสื่อดิจิทัลต่างๆ ฉันทำงานเป็นบรรณาธิการและผู้สร้างเนื้อหาให้กับบริษัทอีคอมเมิร์ซ การสื่อสาร การตลาดออนไลน์ และการโฆษณา ฉันยังได้เขียนไว้ในเว็บไซต์เศรษฐศาสตร์ การเงิน และภาคส่วนอื่นๆ ด้วย งานของฉันก็คือความหลงใหลของฉันเช่นกัน ตอนนี้ผ่านบทความของฉันใน Tecnobitsฉันพยายามสำรวจข่าวสารและโอกาสใหม่ ๆ ที่โลกแห่งเทคโนโลยีมอบให้เราทุกวันเพื่อปรับปรุงชีวิตของเรา