File Provider Extension: এটি কী, iOS ফাইল অ্যাক্সেস এক্সটেনশন

লেখক: IT Sectr প্রকাশিত: 2026-07-11 পড়ার সময়: 6 মিনিট

File Provider Extension একটি iOS প্রক্রিয়া যা অ্যাপ্লিকেশনগুলিকে বিল্ট-ইন Files অ্যাপের মাধ্যমে বাহ্যিক উৎস থেকে ফাইলগুলিতে অ্যাক্সেস প্রদান করতে দেয়। Apple Developer Documentation, 2024 অনুসারে, File Provider Extension ক্লাউড স্টোরেজ, সার্ভার এবং কাস্টম ফাইল সিস্টেম থেকে ফাইলগুলিকে Files.app-এ সরাসরি প্রদর্শন করতে সক্ষম করে — সেগুলি স্থানীয়ভাবে আমদানি করার প্রয়োজন ছাড়াই। ব্যবহারকারী তাদের শারীরিক অবস্থান নির্বিশেষে ফাইলগুলির সাথে কাজ করার জন্য একটি ইউনিফাইড ইন্টারফেস পান।

মূল পয়েন্ট

  • File Provider Extension — Files.app-এর সাথে বাহ্যিক ফাইল সিস্টেম সংহত করার জন্য iOS এক্সটেনশন
  • NSFileProviderManager — ফাইল এবং অবস্থা সিঙ্ক্রোনাইজেশন পরিচালনার জন্য প্রধান API
  • দুটি মোড অপারেশন: বিভিন্ন সংহতকরণ পরিস্থিতির জন্য Foundation-based এবং FileProviderUI
  • প্রদানকারীরা NSFileProviderItem-এর মাধ্যমে অনুসন্ধান, ফোল্ডার শ্রেণিবিন্যাস এবং ট্যাগ প্রয়োগ করতে পারেন
  • নিরাপত্তা Sandbox-এর মাধ্যমে নিশ্চিত করা হয় — এক্সটেনশন অ্যাপ থেকে বিচ্ছিন্নভাবে চলে

iOS-এ File Provider Extension কী?

File Provider Extension iOS এবং macOS-এ একটি অ্যাপ এক্সটেনশন যা একটি অ্যাপ্লিকেশনকে সিস্টেম Files অ্যাপের মাধ্যমে বাহ্যিক উৎস থেকে ফাইলগুলিতে অ্যাক্সেস প্রদান করতে দেয়। এটি iOS 11-এ চালু হয়েছিল এবং Document Provider প্রক্রিয়াটি প্রতিস্থাপন করেছিল, যার সাথে সিঙ্ক্রোনাইজেশন, অনুসন্ধান এবং ট্যাগের জন্য সমর্থন যুক্ত করা হয়েছিল।

File Provider Extension-এর প্রধান কাজ হল বাহ্যিক স্টোরেজ (ক্লাউড সার্ভার, কর্পোরেট NAS, FTP) এবং Files.app-এর মধ্যে একটি সেতু হিসাবে কাজ করা। ব্যবহারকারী ফাইল এবং ফোল্ডারগুলিকে দেখেন যেন সেগুলি স্থানীয়ভাবে সংরক্ষিত আছে, যদিও ডেটা আসলে একটি দূরবর্তী সার্ভারে থাকতে পারে। এক্সটেনশনটি পটভূমিতে কাজ করে, প্রয়োজন অনুসারে বিষয়বস্তু সিঙ্ক্রোনাইজ করে।

WWDC 2024 অনুসারে, Apple সক্রিয়ভাবে FileProvider API বিকাশ করছে: ইনক্রিমেন্টাল সিঙ্ক্রোনাইজেশনের জন্য সমর্থন যুক্ত করা হয়েছে, বড় ডিরেক্টরির জন্য কর্মক্ষমতা উন্নত করা হয়েছে এবং ব্যাচ অপারেশন এখন উপলব্ধ। এটি File Provider Extension-কে Apple ইকোসিস্টেমে বাহ্যিক ফাইল সংহত করার পছন্দের উপায় করে তোলে।

File Provider Extension কীভাবে কাজ করে

আর্কিটেকচার File Provider Extension-এর দুটি উপাদান রয়েছে: প্রধান এক্সটেনশন (ফাইল প্রদানকারী প্রকার) এবং প্রমাণীকরণ এবং কনফিগারেশনের জন্য একটি ঐচ্ছিক UI এক্সটেনশন। প্রধান এক্সটেনশন NSFileProviderExtension প্রোটোকল প্রয়োগ করে এবং Files.app থেকে সমস্ত অনুরোধ পরিচালনা করে।

swift
import FileProvider

class CloudFileProvider: NSFileProviderExtension {
    override func item(for identifier: NSFileProviderItemIdentifier) throws -> NSFileProviderItem {
        guard let item = storage
            .item(for: identifier) else {
            throw NSError(domain: NSFileProviderErrorDomain,
                              code: NSFileProviderError.noSuchItem.rawValue)
        }
        return item
    }

    override func urlForItem(with identifier: NSFileProviderItemIdentifier) -> URL {
        return fileCoordinator.urlForItem(with: identifier)
    }
}

যখন একজন ব্যবহারকারী Files.app খোলে এবং আপনার প্রদানকারী নির্বাচন করে, সিস্টেম একটি পটভূমি প্রক্রিয়ায় এক্সটেনশন শুরু করে। এক্সটেনশনের কোনো UI নেই — এটি একটি হেডলেস প্রক্রিয়া যা পড়া, লেখা, নাম পরিবর্তন এবং ফাইল মুছে ফেলার অনুরোধগুলি পরিচালনা করে। সমস্ত অপারেশন NSFileProviderManager-এর মাধ্যমে অ্যাসিঙ্ক্রোনাসভাবে সম্পাদিত হয়।

গুরুত্বপূর্ণ সূক্ষ্মতা: File Provider Extension একটি পৃথক প্রক্রিয়ায় বাস করে এবং মেমরি কম হলে সিস্টেম দ্বারা শেষ করা যেতে পারে। তাই, প্রদানকারীকে পুনরায় চালু করার পরে অবস্থা পুনরুদ্ধার করতে সক্ষম হতে হবে, স্থায়ী স্টোরেজে শনাক্তকারী এবং সিঙ্ক ক্যাশ সংরক্ষণ করতে হবে।

NSFileProviderItem মডেল: ফাইল এবং ফোল্ডার

NSFileProviderItem একটি প্রোটোকল যা প্রদানকারী শ্রেণিবিন্যাসে একটি পৃথক ফাইল বা ফোল্ডার বর্ণনা করে। প্রতিটি আইটেমের একটি অনন্য শনাক্তকারী, নাম, প্রকার (ফাইল বা ফোল্ডার), তৈরি এবং সংশোধনের তারিখ, আকার এবং ফ্ল্যাগ (অফলাইনে উপলব্ধ, কেবল পঠনযোগ্য) থাকে।

বৈশিষ্ট্যপ্রকারবর্ণনা
itemIdentifierNSFileProviderItemIdentifierপ্রদানকারী সিস্টেমে আইটেমের অনন্য ID
parentItemIdentifierNSFileProviderItemIdentifierপ্যarent ফোল্ডারের ID (রুট — .rootContainer)
filenameStringএক্সটেনশন সহ ফাইলের নাম
typeIdentifierString (UTType)সামগ্রীর প্রকার নির্ধারণের জন্য ইউনিফর্ম টাইপ আইডেন্টিফায়ার
capabilitiesNSFileProviderItemCapabilitiesফ্ল্যাগ: মুছে ফেলা, নাম পরিবর্তন, ট্যাগ যুক্ত করা

প্রোটোকলটি NSFileProviderItemProtocol-এর মাধ্যমে বর্ধিত ক্ষমতাও সমর্থন করে: ট্যাগ (রঙিন লেবেল), আইকন, সংস্করণ নিয়ন্ত্রণ এবং কাস্টম কর্ম। বড় ফাইলের জন্য, NSFileProviderService-এর মাধ্যমে পুনরায় শুরুযোগ্য স্থানান্তর সমর্থন প্রয়োগ করা হয়।

WWDC 2023 অনুসারে, Apple সম্পূর্ণ অবজেক্টের পরিবর্তে শুধুমাত্র পরিবর্তিত বৈশিষ্ট্যগুলি আপডেট করতে ক্লোজার (NSFileProviderItemFields) ব্যবহার করার পরামর্শ দেয়। এটি ব্যাচ আপডেটের সময় সিঙ্ক্রোনাইজেশনকে উল্লেখযোগ্যভাবে গতি বাড়ায় — উদাহরণস্বরূপ, যখন শুধুমাত্র ফাইলগুলির একটি গ্রুপের আকার পরিবর্তিত হয়।

সিঙ্ক ইঞ্জিন এবং NSFileProviderManager

NSFileProviderManager এক্সটেনশন জীবনচক্র পরিচালনার জন্য কেন্দ্রীয় ক্লাস। এটি সিস্টেমকে পরিবর্তন সম্পর্কে সংকেত দেওয়া, সহযোগী দ্বন্দ্ব পরিচালনা এবং ডাউনলোড পরিচালনার জন্য পদ্ধতি সরবরাহ করে। ম্যানেজার স্বয়ংক্রিয়ভাবে সক্রিয় স্থানান্তর ট্র্যাক করে এবং ব্যবহারকারীর কাছে দৃশ্যমান ফাইলগুলিকে অগ্রাধিকার দেয়।

swift
class SyncManager {
    let providerManager = NSFileProviderManager.default

    func signalUpdate(for item: NSFileProviderItemIdentifier) {
        providerManager.signalEnumerator(
            for: item.parentItemIdentifier
        ) { error in
            if let error = error {
                Logger.sync.error(
                    "Failed to signal: \(error.localizedDescription)"
                )
            }
        }
    }

    func uploadItem(at url: URL, itemId: NSFileProviderItemIdentifier) {
        providerManager.registerURLBasedItem(
            with: itemId,
            url: url
        )
    }
}

সিঙ্ক ইঞ্জিন হল সেই লজিক যা ডেভেলপার স্বাধীনভাবে প্রয়োগ করে। Apple কোনো অন্তর্নির্মিত সিঙ্ক্রোনাইজেশন প্রক্রিয়া সরবরাহ করে না — শুধুমাত্র পরিবর্তন সম্পর্কে সিস্টেমকে অবহিত করার জন্য API। প্রদানকারী নিজেই সিদ্ধান্ত নেয় কীভাবে সার্ভার থেকে ফাইল ডাউনলোড করতে হবে, সেগুলি স্থানীয়ভাবে ক্যাশ করতে হবে এবং সম্পাদনা দ্বন্দ্ব সমাধান করতে হবে।

দ্বন্দ্ব: সিস্টেম NSFileProviderSyncAnchor-এর মাধ্যমে সংস্করণ দ্বন্দ্ব সনাক্তকরণ সমর্থন করে। যখন একটি ফাইল একই সাথে স্থানীয় এবং দূরবর্তীভাবে পরিবর্তিত হয়, প্রদানকারী শেষ সিঙ্ক্রোনাইজড সংস্করণ নির্ধারণ করতে সিঙ্ক অ্যাঙ্কর ব্যবহার করে এবং শেষ লেখকের জয় কৌশল বা দ্বন্দ্বপূর্ণ কপি তৈরি করে দ্বন্দ্ব সমাধান করে।

নিরাপত্তা এবং এক্সটেনশন স্যান্ডবক্স

File Provider Extension একটি কঠোর iOS স্যান্ডবক্সের মধ্যে কাজ করে। এক্সটেনশনের হোস্ট অ্যাপের ফাইল সিস্টেমে সরাসরি অ্যাক্সেস নেই, এবং বিপরীতভাবে, অ্যাপ সরাসরি প্রদানকারীর ফাইল পড়তে পারে না। সমস্ত ডেটা বিনিময় Files.app সিস্টেম API-এর মাধ্যমে হয়।

ব্যবহারকারীর ফাইলগুলিতে অ্যাক্সেস কেবল স্পষ্ট মিথস্ক্রিয়ার মাধ্যমে সম্ভব: ব্যবহারকারী একটি অ্যাপ্লিকেশনে Files.app থেকে একটি ফাইল খোলে, এবং সিস্টেম একটি বিচ্ছিন্ন কন্টেইনারে ফাইলের একটি অস্থায়ী কপি তৈরি করে। প্রাপ্ত অ্যাপ এই কপির সাথে কাজ করে, প্রদানকারীর স্টোরেজে মূলের সাথে নয়।

Apple Security Guide, 2024 অনুসারে, প্রদানকারীকে ট্রান্সমিশনের সময় ডেটা এনক্রিপশন (TLS 1.3) প্রয়োগ করতে হবে এবং ক্যাশ করা ফাইলগুলির জন্য ঐচ্ছিকভাবে ডিস্ক এনক্রিপশন যুক্ত করতে পারে। ব্যবহারকারী প্রমাণীকরণ একটি পৃথক FileProviderUI উপাদানের মাধ্যমে সম্পাদিত হয়, যা নিরাপদ ক্রেডেনশিয়াল ইনপুটের জন্য এক্সটেনশন স্যান্ডবক্সের বাইরে চলে।

মূল সীমাবদ্ধতা: এক্সটেনশন নির্বিচারে কোড চালাতে পারে না — এটি কেবল NSFileProviderManager-এর মাধ্যমে অনুরোধগুলি প্রক্রিয়া করে। ফাইল অপারেশনের বাইরে কোনো লজিক প্রধান অ্যাপে প্রয়োগ করতে হবে এবং অ্যাপ গ্রুপ বা XPC পরিষেবাগুলির মাধ্যমে কল করতে হবে।

সচরাচর জিজ্ঞাসা

iOS-এ File Provider Extension কী?

File Provider Extension Files অ্যাপের সাথে বাহ্যিক ফাইল স্টোরেজ সংহত করার জন্য একটি অ্যাপ এক্সটেনশন। এটি ক্লাউড পরিষেবা, FTP, NAS এবং অন্যান্য উৎস থেকে ফাইলগুলি স্থানীয়ভাবে কপি না করেই প্রদর্শন করতে দেয়।

File Provider এবং Document Provider-এর মধ্যে পার্থক্য কী?

File Provider (iOS 11+) Document Provider-কে প্রতিস্থাপন করেছে, পটভূমি সিঙ্ক্রোনাইজেশন, Spotlight অনুসন্ধান সমর্থন, ট্যাগ এবং উন্নত কর্মক্ষমতা যুক্ত করেছে। Document Provider iOS 11-এর সাথে অপ্রচলিত হয়ে গিয়েছিল এবং iOS 14-এ সরিয়ে ফেলা হয়েছিল।

File Provider Extension কীভাবে ফাইল সিঙ্ক্রোনাইজ করে?

সিঙ্ক্রোনাইজেশন ডেভেলপার দ্বারা NSFileProviderManager-এর মাধ্যমে প্রয়োগ করা হয়। এক্সটেনশন signalEnumerator-এর মাধ্যমে সিস্টেমকে পরিবর্তন সম্পর্কে সংকেত দেয়, এবং সিস্টেম আপডেট করা আইটেমের তালিকার অনুরোধ করে। সংস্করণ দ্বন্দ্ব NSFileProviderSyncAnchor-এর মাধ্যমে সমাধান করা হয়।

এক্সটেনশন কি প্রধান অ্যাপ ছাড়া কাজ করতে পারে?

হ্যাঁ, File Provider Extension প্রধান অ্যাপ চলমান ছাড়াই একটি স্বাধীন প্রক্রিয়া হিসাবে কাজ করতে পারে। এটি একটি হেডলেস এক্সটেনশন যা iOS Files.app-এর অনুরোধে শুরু করে। তবে, প্রমাণীকরণ এবং প্রাথমিক সেটআপ সাধারণত প্রধান অ্যাপের মাধ্যমে সম্পাদিত হয়।

File Provider Extension-এর কী কী অনুমতি প্রয়োজন?

এক্সটেনশনের Xcode-এ File Provider সামর্থ্য এবং সেইসাথে entitlement com.apple.developer.file-provider প্রয়োজন। নেটওয়ার্ক অ্যাক্সেসের জন্য, Network সামর্থ্য যুক্ত করা হয়। অন্যান্য সমস্ত অধিকার iOS স্যান্ডবক্স দ্বারা কঠোরভাবে সীমাবদ্ধ।

সারসংক্ষেপ

  • File Provider Extension — অ্যাপ এক্সটেনশনের মাধ্যমে Files.app-এর সাথে বাহ্যিক ফাইল সিস্টেম সংহত করার একটি iOS প্রক্রিয়া
  • NSFileProviderManager — ফাইল পরিচালনা, পরিবর্তনের সংকেত এবং ডাউনলোডের জন্য প্রধান API
  • NSFileProviderItem — প্রদানকারী শ্রেণিবিন্যাসে বিষয়বস্তু ইউনিট বর্ণনাকারী প্রোটোকল
  • স্যান্ডবক্স এক্সটেনশনকে হোস্ট অ্যাপ থেকে বিচ্ছিন্ন করে — কেবল Files.app-এর মাধ্যমে ডেটা বিনিময়
  • সিঙ্ক্রোনাইজেশন ডেভেলপার দ্বারা প্রয়োগ করা হয়: Apple API সরবরাহ করে কিন্তু অন্তর্নির্মিত ইঞ্জিন নয়
  • সংস্করণ দ্বন্দ্ব সিঙ্ক অ্যাঙ্করের মাধ্যমে পরিচালিত হয় — প্রদানকারী সমাধানের কৌশল বেছে নেয়
  • পটভূমি মোড এক্সটেনশনকে অ্যাপ চলমান ছাড়াই কাজ করতে দেয়, কিন্তু অবস্থার স্থায়িত্ব প্রয়োজন

আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব

IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।

প্রকল্প নিয়ে আলোচনা করুন

আরও পড়ুন