iCloud Drive: คืออะไร พื้นที่จัดเก็บบนคลาวด์ของ Apple และวิธีการทำงาน

ผู้แต่ง: IT Sectr เผยแพร่เมื่อ: 2026-07-11 เวลาอ่าน: 6 นาที

iCloud Drive คือพื้นที่จัดเก็บไฟล์บนคลาวด์ของ Apple ที่สร้างไว้ใน iOS, macOS และ iPadOS สำหรับซิงค์เอกสารระหว่างอุปกรณ์ของผู้ใช้ ตามข้อมูลจาก Apple, 2024, iCloud Drive ใช้ CloudKit เป็นแบ็กเอนด์สำหรับจัดเก็บไฟล์และการซิงค์อัตโนมัติ: การเปลี่ยนแปลงที่ทำบน iPhone จะสะท้อนบน Mac และ iPad ทันทีโดยไม่ต้องดำเนินการใดๆ จากผู้ใช้ นักพัฒนาสามารถรวม iCloud Drive เข้ากับแอปพลิเคชันผ่าน NSDocumentPickerViewController และ API ของ Ubiquity

ประเด็นสำคัญ

  • iCloud Drive คือพื้นที่จัดเก็บบนคลาวด์ของ Apple สำหรับซิงค์ไฟล์ระหว่างอุปกรณ์
  • CloudKit คือแบ็กเอนด์ของ iCloud ที่ให้บริการจัดเก็บข้อมูลและการซิงค์
  • คอนเทนเนอร์ Ubiquity คือไดเรกทอรีพิเศษสำหรับจัดเก็บไฟล์ที่ซิงค์แล้วของแอปพลิเคชัน
  • NSDocumentPickerViewController คือตัวควบคุมระบบสำหรับนำเข้าและส่งออกไฟล์ iCloud
  • ข้อขัดแย้งของเวอร์ชัน จะถูกแก้ไขโดยอัตโนมัติผ่าน NSFileVersion ด้วยการสร้างสำเนาที่ขัดแย้งกัน

iCloud Drive ใน iOS คืออะไร?

iCloud Drive คือบริการไฟล์บนคลาวด์ของ Apple ที่ให้พื้นที่จัดเก็บเอกสารแบบรวมศูนย์สำหรับอุปกรณ์ทั้งหมดของผู้ใช้ที่ได้รับอนุญาตด้วย Apple ID เดียวกัน บริการนี้เปิดตัวในปี 2014 พร้อมกับ iOS 8 และ OS X Yosemite เพื่อแทนที่ iCloud Documents

iCloud Drive แตกต่างจากบริการพื้นที่จัดเก็บบนคลาวด์อื่นๆ (Google Drive, Dropbox) ตรงที่มีการผสานรวมอย่างลึกซึ้งกับระบบปฏิบัติการ: ไฟล์จะปรากฏโดยตรงใน Finder บน macOS และในแอปไฟล์บน iOS โดยไม่ต้องติดตั้งแอปเพิ่มเติม ระบบจะซิงค์เนื้อหาโดยอัตโนมัติในพื้นหลัง สลับระหว่างเครือข่าย Wi-Fi และเครือข่ายมือถือ

ตามข้อมูลจาก Apple Platform Overview, 2024, iCloud Drive รองรับการควบคุมเวอร์ชันไฟล์สูงสุด 30 วัน การแชร์โฟลเดอร์ผ่าน iCloud Sharing และการผสานรวมกับการค้นหาระบบ Spotlight นักพัฒนาสามารถเข้าถึงพื้นที่จัดเก็บผ่าน API ของ NSFileCoordinator และคอนเทนเนอร์ Ubiquity

สถาปัตยกรรม iCloud Drive และ Ubiquity

Ubiquity คือคำศัพท์ของ Apple ที่หมายถึงความสามารถของข้อมูลที่จะ “อยู่ทุกหนทุกแห่ง” ในบริบทของ iCloud Drive นี่คือกลไกที่ช่วยให้ไฟล์สามารถซิงค์โดยอัตโนมัติทั่วทุกอุปกรณ์ของผู้ใช้ผ่านแบ็กเอนด์คลาวด์ CloudKit

ส่วนประกอบคำอธิบายบทบาท
คอนเทนเนอร์ Ubiquityไดเรกทอรีพิเศษของแอปพลิเคชันจัดเก็บไฟล์สำหรับการซิงค์
CloudKitบริการแบ็กเอนด์ของ Appleให้บริการจัดเก็บและการซิงค์
NSMetadataQueryคำค้นหาระบบติดตามสถานะไฟล์ Ubiquity
NSFileVersionการจัดการเวอร์ชันแก้ไขข้อขัดแย้งของการเปลี่ยนแปลง

คอนเทนเนอร์ Ubiquity คือไดเรกทอรีภายใน Sandbox ของแอปพลิเคชันที่ทำเครื่องหมายสำหรับการซิงค์ ไฟล์ที่วางในไดเรกทอรีนี้จะถูกอัปโหลดไปยัง iCloud Drive โดยอัตโนมัติและกระจายไปยังอุปกรณ์อื่นๆ การเข้าถึงคอนเทนเนอร์ถูกกำหนดค่าผ่าน Capabilities ใน Xcode

ระบบติดตามสถานะของแต่ละไฟล์ผ่าน NSMetadataQuery: ไฟล์สามารถอยู่ในสถานะท้องถิ่น (ดาวน์โหลดไปยังอุปกรณ์แล้ว), ระยะไกล (อยู่เฉพาะบนคลาวด์) หรือกำลังดาวน์โหลด นักพัฒนาสามารถขอให้ดาวน์โหลดไฟล์โดยทางโปรแกรมหรือตรวจสอบความพร้อมใช้งานก่อนเปิด

การรวม iCloud Drive เข้ากับแอปพลิเคชัน

การรวม iCloud Drive เริ่มต้นด้วยการเพิ่มความสามารถ iCloud ใน Xcode และเปิดใช้งานบริการ iCloud Documents หลังจากนั้น แอปพลิเคชันจะเข้าถึงคอนเทนเนอร์ Ubiquity ซึ่งเป็นไดเรกทอรีพิเศษที่ส่งคืนเส้นทางผ่าน FileManager

swift
import UIKit

class DocumentManager {
    func ubiquityURL() -> URL? {
        return FileManager.default
            .url(forUbiquityContainer: nil)
    }

    func saveToICloud(data: Data, filename: String) {
        guard let containerURL = ubiquityURL() else { return }
        let fileURL = containerURL
            .appendingPathComponent(filename)

        do {
            try data.write(to: fileURL)
            Logger.storage.info(
                "Saved \(filename) to iCloud Drive"
            )
        } catch {
            Logger.storage.error(
                "Save failed: \(error.localizedDescription)"
            )
        }
    }

    func listICloudFiles() {
        let query = NSMetadataQuery()
        query.searchScopes = [NSMetadataQueryUbiquitousDocumentsScope]
        query.start()
    }
}

NSDocumentPickerViewController จัดเตรียมอินเทอร์เฟซผู้ใช้ของระบบสำหรับเลือกและนำเข้าไฟล์จาก iCloud Drive ผู้ใช้จะเห็นเบราว์เซอร์ไฟล์มาตรฐานที่รองรับการค้นหา การเรียงลำดับ และการเลือกหลายรายการ หลังจากเลือกไฟล์แล้ว แอปพลิเคชันจะได้รับ URL และสามารถทำงานกับไฟล์ผ่าน NSFileCoordinator

กฎสำคัญ: เมื่อทำงานกับไฟล์ iCloud Drive คุณต้องใช้ NSFileCoordinator สำหรับการอ่านและเขียน เพื่อให้แน่ใจว่าไฟล์จะไม่ถูกแก้ไขโดยกระบวนการอื่น (เช่น การซิงค์) ระหว่างการดำเนินการ การละเลยการประสานงานอาจทำให้ข้อมูลเสียหาย

การแก้ไขข้อขัดแย้งและ NSFileVersion

ข้อขัดแย้งของเวอร์ชัน เกิดขึ้นเมื่อไฟล์ถูกแก้ไขบนอุปกรณ์สองเครื่องพร้อมกันก่อนที่การซิงค์จะเสร็จสมบูรณ์ iOS จะตรวจจับสถานการณ์ดังกล่าวโดยอัตโนมัติผ่าน NSFileVersion และสร้างเวอร์ชันที่ขัดแย้งกันซึ่งผู้ใช้หรือแอปพลิเคชันต้องแก้ไข

swift
func resolveConflicts(for fileURL: URL) {
    let conflictVersions = NSFileVersion
        .unresolvedConflictVersionsOfItem(at: fileURL) ?? []

    for version in conflictVersions {
        do {
            let conflictData = try Data(contentsOf: version.url)
            let resolved = mergeData(
                original: try Data(contentsOf: fileURL),
                conflict: conflictData
            )
            try resolved.write(to: fileURL)
            version.remove()
        } catch {
            Logger.sync.error(
                "Conflict resolution failed: \(error)"
            )
        }
    }
}

NSFileVersion จัดเก็บประวัติการเปลี่ยนแปลงของไฟล์นานสูงสุด 30 วัน แต่ละเวอร์ชันประกอบด้วย URL วันที่สร้าง และตัวระบุของอุปกรณ์ที่สร้างเวอร์ชัน ระบบจะทำเครื่องหมายเวอร์ชันว่าขัดแย้งกันโดยอัตโนมัติเมื่ออุปกรณ์สองเครื่องส่งการเปลี่ยนแปลงด้วยตัวระบุฐานเดียวกัน

กลยุทธ์การแก้ไข: แอปพลิเคชันสามารถรวมการเปลี่ยนแปลงโดยอัตโนมัติ (สำหรับรูปแบบที่รองรับ) แสดงตัวเลือกเวอร์ชันให้ผู้ใช้เลือก หรือใช้กลยุทธ์ผู้เขียนคนสุดท้ายชนะ (last-writer-wins) Apple แนะนำให้รวมอัตโนมัติสำหรับข้อมูลข้อความและข้อมูลที่มีโครงสร้าง และแสดงเวอร์ชันที่ขัดแย้งให้ผู้ใช้เลือกสำหรับรูปแบบไบนารี

ขีดจำกัดพื้นที่จัดเก็บและการเพิ่มประสิทธิภาพ

พื้นที่จัดเก็บฟรี ของ iCloud คือ 5 GB ซึ่งกระจายไปยังบริการทั้งหมดของผู้ใช้: การสำรองข้อมูล รูปภาพ อีเมล และ iCloud Drive แผนแบบชำระเงินเริ่มต้นที่ 50 GB และสูงถึง 12 TB สำหรับแอปพลิเคชันที่มีการแลกเปลี่ยนไฟล์จำนวนมาก การพิจารณาขีดจำกัดเหล่านี้เป็นสิ่งสำคัญ

การเพิ่มประสิทธิภาพพื้นที่จัดเก็บ: iOS มีกลไกการนำไฟล์ออก—เมื่อพื้นที่ท้องถิ่นหมด ระบบสามารถลบสำเนาที่แคชไว้ของไฟล์ iCloud Drive ทิ้ง โดยเหลือเพียงข้อมูลเมตา เมื่อพยายามเปิดไฟล์ดังกล่าว ระบบจะดาวน์โหลดจากคลาวด์โดยอัตโนมัติ นักพัฒนาสามารถควบคุมกระบวนการนี้ผ่าน NSFileCoordinator และตรวจสอบสถานะไฟล์ผ่าน NSMetadataUbiquitousItemDownloadingStatusKey

ตามข้อมูลจาก WWDC 2022, Apple แนะนำแนวทางปฏิบัติต่อไปนี้เพื่อเพิ่มประสิทธิภาพ iCloud Drive: เก็บเฉพาะเอกสารผู้ใช้ในคอนเทนเนอร์ Ubiquity ไม่ใช่แคชของแอปพลิเคชัน; ใช้การดาวน์โหลดแบบอะซิงโครนัสพร้อมตัวบ่งชี้ความคืบหน้า; ให้ข้อมูลขนาดไฟล์แก่ผู้ใช้ก่อนดาวน์โหลด; นำการรองรับการดาวน์โหลดต่อสำหรับไฟล์ขนาดใหญ่

ประเด็นสำคัญ: การลบไฟล์ออกจากคอนเทนเนอร์ Ubiquity จะลบไฟล์ออกจากอุปกรณ์ทั้งหมดของผู้ใช้ สำหรับไฟล์ชั่วคราว ให้ใช้ไดเรกทอรี Documents ในท้องถิ่นแทนคอนเทนเนอร์ Ubiquity นอกจากนี้ โปรดทราบว่าการซิงค์ไม่ได้เกิดขึ้นทันที—ความล่าช้าอาจอยู่ในช่วงไม่กี่วินาทีถึงนาที ขึ้นอยู่กับขนาดไฟล์และเครือข่าย

คำถามที่พบบ่อย

iCloud Drive คืออะไร?

iCloud Drive คือพื้นที่จัดเก็บไฟล์บนคลาวด์ของ Apple ที่ซิงค์เอกสารระหว่าง iPhone, iPad, Mac และ PC มันถูกรวมเข้ากับ Finder และแอปไฟล์ ช่วยให้คุณทำงานกับเอกสารได้โดยไม่ต้องใช้แอปเพิ่มเติม

iCloud Drive ซิงค์ไฟล์อย่างไร?

การซิงค์ ทำงานผ่าน CloudKit: ไฟล์จากคอนเทนเนอร์ Ubiquity ของแอปพลิเคชันจะถูกอัปโหลดไปยังคลาวด์โดยอัตโนมัติและกระจายไปยังอุปกรณ์อื่นๆ ของผู้ใช้ ระบบใช้ NSMetadataQuery สำหรับติดตามสถานะและ NSFileCoordinator สำหรับการเข้าถึงที่ปลอดภัย

จะรวม iCloud Drive เข้ากับแอปพลิเคชันได้อย่างไร?

เพิ่ม ความสามารถ iCloud ใน Xcode เปิดใช้งานบริการ iCloud Documents และใช้ FileManager.url(forUbiquityContainer:) เพื่อรับเส้นทางไปยังไดเรกทอรีที่ซิงค์ ใช้ NSDocumentPickerViewController สำหรับการเลือกไฟล์

จะทำอย่างไรเมื่อเกิดข้อขัดแย้งของเวอร์ชันใน iCloud Drive?

iOS สร้าง เวอร์ชันที่ขัดแย้งกัน ผ่าน NSFileVersion นักพัฒนาสามารถรวมการเปลี่ยนแปลงโดยอัตโนมัติหรือแสดงตัวเลือกให้ผู้ใช้เลือก ระบบจัดเก็บเวอร์ชันนานสูงสุด 30 วันและทำเครื่องหมายข้อขัดแย้งโดยอัตโนมัติเมื่อมีการเปลี่ยนแปลงพร้อมกันจากอุปกรณ์ต่างๆ

ขีดจำกัดของ iCloud Drive คืออะไร?

พื้นที่จัดเก็บฟรี คือ 5 GB ในทุกบริการของ iCloud แผนแบบชำระเงิน: 50 GB, 200 GB, 2 TB, 6 TB และ 12 TB สำหรับไฟล์ขนาดใหญ่ ให้ใช้การรองรับการดาวน์โหลดต่อและตรวจสอบพื้นที่ว่างก่อนเขียน

สรุป

  • iCloud Drive คือพื้นที่จัดเก็บบนคลาวด์ของ Apple ที่ซิงค์อัตโนมัติระหว่างอุปกรณ์ผ่าน CloudKit
  • คอนเทนเนอร์ Ubiquity คือไดเรกทอรีแอปพลิเคชันพิเศษสำหรับจัดเก็บไฟล์ที่ซิงค์แล้ว
  • NSMetadataQuery ติดตามสถานะการดาวน์โหลดและความพร้อมใช้งานของไฟล์ iCloud Drive
  • NSFileCoordinator จำเป็นสำหรับการอ่านและเขียนไฟล์ที่ซิงค์แล้วอย่างปลอดภัย
  • ข้อขัดแย้งของเวอร์ชัน ถูกตรวจจับโดยอัตโนมัติและต้องแก้ไขผ่าน NSFileVersion
  • การเพิ่มประสิทธิภาพ รวมถึงการนำไฟล์ที่ไม่ได้ใช้ออกและการดาวน์โหลดแบบอะซิงโครนัสพร้อมความคืบหน้า
  • ขีดจำกัดฟรี คือ 5 GB—สำหรับปริมาณที่มากขึ้นต้องใช้แผน iCloud+ แบบชำระเงิน

เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร

IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ

ปรึกษาโครงการ

อ่านเพิ่มเติม