محتوای پست

دورزدن محدودیت حجم google drive

   · ☕ 3 دقیقه بخوانید · 😎 victor
🏷️
  • #python
  • مقدمه

    گوگل درایو یکی دیگر از سرویس های پر کاربرد گوگل هست که با داشتن حساب گوگل می تونید از اون برای ذخیره فایل های خود در اینترنت استفاده کنید اما به صورت پیشفرض هر حساب فقط 15 گیگابایت فضای ذخیره سازی رایگان داره و برای حجم بیشتر باید هزینه پرداخت کنید اما با یک روش جالب میشه این محدودیت رو دور زد در ادامه این روش رو توضیح میدم

    UDS (Unlimited Drive Storage)

    این روش با استفاده از یک اسکریپت پایتون به نام uds انجام میشه این اسکریپت در واقع فایل های شما رو در قالب داکیومنت یا فایل متنی در سرویس google doc ذخیره میکنه. چیزی که این پست رو جالب میکنه طرز کار این اسکریپت هست که در ادامه میبینیم

    امکانات uds

    • آپلود فایل ها در گوگل درایو بدون استفاده از 15‍ گیگابایت فضای حساب
    • دانلود فایل های آپلود شده از حساب

    منطق

    • سرویس گوگل داکیومنت برای فایل های متنی که شما ذخیره میکنید فضایی از گوگل درایو کم نمی کند
    • تجزیه فایل های باینری به فایل های متنی با روش کد گذاری base 64
    • حجم فایل های کد گذاری شده همیشه بیشتر از حجم فایل اصلی هست
    • سرویس گوگل داکیومنت میتونه برای هر فایل متنی میلیون ها کاراکتر ذخیره کنه که حدودا معادل 710 کیلو بایت داده کدگذاری شده با base 64‍ هست

    راه اندازی و احراز هویت

    خب برای استفاده از این اسکریپت باید این ریپوزیتوری رو با استفاده از دستور زیر از گیت هاب clone کنیم.

    1
    
    git clone https://github.com/stewartmcgown/uds.git
    

    بعد از اون باید کتابخانه های مورد نیاز رو به کمک فایل requirements.txt موجود در فولدر برنامه نصب کنیم

    1
    
    pip3 install -r requirements.txt
    

    فعال کردن api حساب گوگل

    برای اینکه برنامه بتونه به گوگل درایو ما دسترسی داشته باشه باید api حساب ما رو داشته باشه برای این کار باید Google's API page رو باز کنیم
    و روی Enable the Drive api کلیک کنید
    بعد از اون ، باید فایل کانفیگ رو که با فرمت json هست دانلود کنیم و در فولدر برنامه با نام client_secret.json ذخیره کنیم

    راه اندازی اولیه

    حالا با یکی از دستورات زیر باید برنامه رو برای راه اندازی اولیه اجرا کنیم

    1
    
    ./uds.py 
    
    1
    
    python3 uds.py
    

    دستورات UDS

    برای کار با برنامه و ذخیره و دانلود فایل ها باید از آرگومان ها استفاده کنیم

    آپلود فایل

    برای آپلود فایل باید از دستور push-- استفاده کنیم برای مثال:

    1
    
    ./uds.py --push Ubuntu.Desktop.16.04.iso
    
    Ubuntu.Desktop.16.04.iso will required 543 Docs to store.
    Created parent folder with ID 1fc6JGpX6vUWiwflL1jBxM1YpuMHFAms8
    Successfully Uploaded Ubuntu.Desktop.16.04.iso: [██████████████████████████████] 100%
    

    لیست فایل ها

    برای دیدن لیست فایل های آپلود شده و موجود در درایو باید از دستور list-- استفاده کنیم برای مثال:

    1
    
    ./uds.py --list
    
    Name                      Size   Encoded    ID
    ------------------------  -----  ---------  ---------------------------------  
    Ubuntu.Desktop.16.04.iso  810 MB  1.1 GB    1fc6JGpX6vUWiwflL1jBxM1YpuMHFAms8
    Ubuntu.Desktop.18.10.iso  1.1 GB  1.3 GB    1RzzVfN9goHMTkM1Hf1FUWUVS_2R3GK7D
    

    و برای جستجو در نام فایل ها باید کلمه مورد نظر رو به دستور لیست پاس بدیم:

    1
    
    ./uds.py --list "18"
    
    Name                      Size   Encoded    ID
    ------------------------  -----  ---------  ---------------------------------  
    Ubuntu.Desktop.18.10.iso  1.1 GB  1.3 GB    1RzzVfN9goHMTkM1Hf1FUWUVS_2R3GK7D
    

    دانلود فایل

    برای دانلود فایل باید از دستور pull-- استفاده کنیم برای مثال:

    1
    
    ./uds.py --pull 1fc6JGpX6vUWiwflL1jBxM1YpuMHFAms8
    
    Downloaded Ubuntu.Desktop.16.04.iso: [██████████████████████████████] 100%
    

    به طور پیشفرض فایل های دانلود شده در فولدر برنامه و دایرکتوری downloads ذخیره میشن

    حذف فایل

    برای حذف فایل باید از دستور delete-- استفاده کنیم برای مثال:

    1
    
    ./uds.py --delete 1fc6JGpX6vUWiwflL1jBxM1YpuMHFAms8
    
    Deleted 1fc6JGpX6vUWiwflL1jBxM1YpuMHFAms8
    
    اشتراک گذاری این پست