برای برنامههای گوگل درایو که نیاز به پیگیری تغییرات آیتمها در درایو دارند، مجموعه تغییرات (Changes collection) روشی کارآمد برای تشخیص تغییرات ارائه میدهد. این مجموعه با ارائه وضعیت فعلی هر آیتم، در صورتی که و تنها در صورتی که آن آیتم از یک نقطه زمانی مشخص تغییر کرده باشد، کار میکند.
گوگل درایو برای هر کاربر و درایو مشترک، یک گزارش تغییرات نگه میدارد. هر کدام سابقهی تغییرات مربوط به موارد مورد علاقهی خود را دارند.
برای ردیابی تغییرات همه موارد قابل مشاهده برای یک کاربر، هم گزارش تغییرات کاربر و هم گزارشهای تغییرات همه درایوهای اشتراکی که کاربر عضو آنهاست، باید دوباره نمایش داده شوند.
فعال کردن ورودیهای تغییر
یک ورودی تغییر، وضعیت فایل یا درایو مشترک را در یک نقطه زمانی مشخص نشان میدهد. یک تغییر، اختلاف زمانی بین ویرایشها ایجاد نمیکند. برنامههایی که نیاز دارند بدانند کدام ویژگیها تغییر کردهاند، باید وضعیت شناختهشده قبلی آیتم را حفظ کرده و مقایسه کنند.
از آنجایی که تغییرات، وضعیت فعلی یک آیتم را نشان میدهند، ورودیهای تغییر تکی ممکن است نامعتبر شوند و با یک ورودی تغییر جدیدتر برای آیتم مربوطه جایگزین شوند.
سنگ قبرها
ورودیهای تغییر برای اقلامی که دیگر برای کاربر در دسترس نیستند، در ورودی تغییر به عنوان deleted علامتگذاری میشوند. فقط شناسه (ID) کالا در ورودی تغییر موجود است.
پیگیری درایوهای مشترک
هر درایو اشتراکی، گزارش تغییرات مخصوص به خود را دارد. حتی اگر یک کاربر عضوی از یک درایو اشتراکی باشد، برخی تغییرات فقط در گزارش تغییرات درایو اشتراکی منعکس میشوند و هرگز در گزارش تغییرات کاربر نمایش داده نمیشوند. اگر فایلی متعلق به یک درایو اشتراکی باشد، حتی اگر آن فایل در مقطعی از گذشته در گزارش تغییرات کاربر ظاهر شده باشد، بازپخش گزارش تغییرات کاربر به تنهایی وضعیت فایل را به درستی بهروزرسانی نمیکند. در عوض، باید گزارش تغییرات درایو اشتراکی را دوباره پخش کنید تا همه تغییرات ثبت شوند.
چه مواردی در گزارش تغییرات کاربر لحاظ میشود؟
گزارش تغییرات یک کاربر شامل تغییرات در درایوهای اشتراکی که او عضو آنهاست و همچنین تغییرات در فایلهای موجود در مجموعه دادههای کاربر میشود. برای اطلاعات بیشتر در مورد مجموعه دادهها، به نمای کلی تغییرات و اصلاحات مراجعه کنید.
این تغییرات درایو اشتراکی در گزارش تغییرات کاربر ظاهر میشوند:
- کاربر عضوی از یک درایو مشترک میشود.
- کاربر دیگر عضوی از یک درایو مشترک نیست.
- یک تغییر مستقیماً مرتبط با درایو اشتراکی که کاربر عضو آن است، وجود دارد، برای مثال:
- سطح دسترسی کاربر در آن درایو مشترک تغییر کرد.
- درایو مشترک تغییر نام داده شده است.
وقتی کاربری عضو یک درایو مشترک میشود، یک رویداد تغییر واحد برای درایو مشترک در گزارش تغییرات کاربر ظاهر میشود. این به معنای دسترسی به همه موارد موجود در درایو مشترک است. کاربر هنگام عضویت، تغییرات مربوط به موارد موجود در درایو مشترک را دریافت نمیکند.
اعضای یک درایو مشترک ممکن است بر اساس میزان استفاده خود، رویدادهای تغییر را برای موارد موجود در یک درایو مشترک مشاهده کنند. با این حال، برنامهها نباید وقتی کاربر عضوی از درایو مشترک است، به این رویدادها تکیه کنند. در عوض، از گزارش تغییرات درایو مشترک برای ردیابی تغییرات استفاده کنید.
اگر به یک فرد غیر عضو، دسترسی به فایلهای مربوط به موارد خاص در یک درایو مشترک اعطا شود، تغییرات در آن موارد در گزارش تغییرات کاربر ردیابی میشود. این همان چیزی است که در مورد موارد درایو غیر مشترک که مستقیماً با کاربران به اشتراک گذاشته میشوند، صدق میکند.
تغییراتی که در گزارش تغییرات درایو مشترک ظاهر میشوند
اگر کاربری عضو یک درایو مشترک باشد، میتواند به گزارش تغییرات آن درایو مشترک که شامل موارد زیر است، دسترسی داشته باشد:
- هرگونه تغییر در خود درایو مشترک، مانند اضافه یا حذف یک عضو
- تغییرات مستقیم در موارد موجود در درایو مشترک.
همگامسازی مجوزها و قابلیتها
تغییرات مجوز در درایو مشترک یا موارد داخل یک درایو مشترک فقط روی خود آن مورد منعکس میشود. در حالی که همه فرزندان مستقیم یا غیرمستقیم آن مورد این تغییر را به ارث میبرند، برای هر یک از این موارد، ورودی جداگانهای در گزارش تغییرات وجود نخواهد داشت. کلاینتها باید یا قابلیتهای جدید را منتشر کنند یا اگر یک مورد والد تغییر کرده باشد، هر مورد را برای بازسازی کامل تغییرات، واکشی کنند.