首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过google colab使用Mega.nz模块的问题

通过google colab使用Mega.nz模块的问题
EN

Stack Overflow用户
提问于 2020-11-15 06:47:38
回答 1查看 946关注 0票数 0

当我像这样使用大量代码时,我会遇到这样的错误:

代码语言:javascript
复制
def uplaod_mega_nz(root,cloude='google_drive',title1=''):
 if (cloude=='mega'):

   mega = Mega()
   email = '????'
   password = 'password'
   m = mega.login(email, password)
   # login using a temporary anonymous account
   m = mega.login()
   quota = m.get_quota()
   # specify unit output kilo, mega, gig, else bytes will output
   space = m.get_storage_space(kilo=True)
   m.create_folder('yolo_car_database/'+title1+'/')
   folder = m.find('yolo_car_database/'+title1+'/')
   # m.upload('myfile.doc', folder[0])
   for path, subdirs, files in os.walk( root):
      for name in files:
          m.upload(os.path.join(path, name), folder[0])
   # public_exported_web_link = m.export('myfile.doc')
   # public_exported_web_link = m.export('my_mega_folder/my_sub_folder_to_share')
 if (cloude=='google_drive'):
     run_command('mkdir '+root+'/')
     copy_tree(root,'/content/gdrive/My Drive/yolo_car_database/' + title1 + '/')

错误如下:

代码语言:javascript
复制
---------------------------------------------------------------------------

RequestError                              Traceback (most recent call last)

<ipython-input-2-9904784b863b> in <module>()
    121 for line in open('/content/yoloOnGoogleColab/car_type_label.txt','r').readlines():
    122     print (line)
--> 123     Youtube_download_video(line)
    124     i=i+1
    125 # !cp '/content/yolo_car_database' "gdrive/My Drive/yolo_car_databe"

10 frames

/usr/local/lib/python3.6/dist-packages/mega/mega.py in _api_request(self, data)
    186                 logger.info(msg)
    187                 raise RuntimeError(msg)
--> 188             raise RequestError(int_resp)
    189         return json_resp[0]
    190 

RequestError: EACCESS, Access violation (e.g., trying to write to a read-only share)

完整的代码可以在这里看到:

https://colab.research.google.com/github/CAR-Driving/yoloOnGoogleColab/blob/master/database_creating/Yoututbe_scraping_by_colab2_mega.ipynb#scrollTo=D_cTa8uxZWbP

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2020-11-25 06:12:07

这可以通过运行第一个块代码来完成,如下所示:

代码语言:javascript
复制
# @markdown <center><h3>Input Your Mega ID</h3></center><br>
from functools import wraps
import errno
import os
import signal
import subprocess
import shlex


class TimeoutError(Exception):
    pass


def timeout(seconds=10, error_message=os.strerror(errno.ETIME)):
    def decorator(func):
        def _handle_timeout(signum, frame):
            raise TimeoutError(error_message)

        def wrapper(*args, **kwargs):
            signal.signal(signal.SIGALRM, _handle_timeout)
            signal.alarm(seconds)
            try:
                result = func(*args, **kwargs)
            finally:
                signal.alarm(0)
            return result

        return wraps(func)(wrapper)

    return decorator


if not os.path.exists("/root/.ipython/ocr.py"):
    from subprocess import run
    from shlex import split

    shellCmd = "wget -qq https://raw.githubusercontent.com/biplobsd/OneClickRun/master/res/ocr.py \
                    -O /root/.ipython/ocr.py"
    run(split(shellCmd))
from ocr import runSh

@timeout(10)
def runShT(args):
    return runSh(args, output=True)


# MEGAcmd installing
if not os.path.exists("/usr/bin/mega-cmd"):
    print("Installing MEGA ...")
    runSh('sudo apt-get -y update')
    runSh('sudo apt-get -y install libmms0 libc-ares2 libc6 libcrypto++6 libgcc1 libmediainfo0v5 libpcre3 libpcrecpp0v5 libssl1.1 libstdc++6 libzen0v5 zlib1g apt-transport-https')
    runSh('sudo curl -sL -o /var/cache/apt/archives/MEGAcmd.deb https://mega.nz/linux/MEGAsync/Debian_9.0/amd64/megacmd-Debian_9.0_amd64.deb', output=True)
    runSh('sudo dpkg -i /var/cache/apt/archives/MEGAcmd.deb', output=True)
    print("MEGA is installed.")
else:
    !pkill mega-cmd

# INPUT YOUR MEGA ID

USERNAME = 'kayeyoc231@llubed.com'  # @param {type:"string"}
PASSWORD = "ss123456"  # @param {type:"string"}
if not (USERNAME == "" or PASSWORD == ""):
    try:
        runShT(f"mega-login {USERNAME} {PASSWORD}")
    except TimeoutError:
        runSh('mega-whoami', output=True)
else:
    print("Please Input your Mega IDs.")
# @markdown *After signing in, use the above cell(Main Cell) to transfer files from Mega to GDrive using the transfer quota of your Mega Pro Account*

然后通过挂载google Drive帐户,如下所示:

代码语言:javascript
复制
from google.colab import drive
drive.mount('/content/gdrive')
!mkdir "/content/gdrive/My Drive/yolo_car_database/"

# !cp /content "gdrive/My Drive/yolo_car_databe"

挂载后,您可以进入google dive文件夹,如下所示:

代码语言:javascript
复制
%cd /content/gdrive/MyDrive/

通过colab代码块销毁此代码:

代码语言:javascript
复制
!mega-cmd 

并将此代码写入其输入终端

代码语言:javascript
复制
sync <Source_path_folder_address> <mega_ns_destination_folder>

例如,ti可以是:

代码语言:javascript
复制
sync /content/gdrive/MyDrive/ .

然后,您可以编写ls命令来查看文件夹是否已同步到mega.nz驱动器。

所有这些都可以在here上看到。

此外,您还可以通过此链接查看mega-cmd帮助:

https://github.com/meganz/MEGAcmd

此外,您还可以在运行此答案第一部分编写的代码块后使用此命令:

代码语言:javascript
复制
from ocr import runSh
 
 
root = <the Colab target folder to be copied to mega.nz drive>
runSh('mega-cd /' )
runSh('mega-mkdir SomeThing ')
runSh( mega-ls ')
runSh('mega-cd SomeThing ')
 
runSh('mega-put '+ root+' . ')
runSh(' mega-ls')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64839408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档