Coder Social home page Coder Social logo

go-mega's People

Contributors

cmiksche avatar darkfighterluke avatar dependabot[bot] avatar finkandreas avatar maksverver avatar ncw avatar nodudewastaken avatar ptman avatar satvikc avatar sogko avatar somedev7 avatar t3rm1n4l avatar xiconet avatar yaslama avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

go-mega's Issues

Link fails for directories with "Access violation"

Adding this unit test (in the fix-link-dir branch) shows that Link fails on directories.

func TestExportDir(t *testing.T) {
	session := initSession(t)
	node := createDir(t, session, "testdir1", session.FS.root)

	// Don't include decryption key
	retry(t, "Failed to export link (key not included)", func() error {
		_, err := session.Link(node, false)
		return err
	})

	// Do include decryption key
	retry(t, "Failed to export link (key included)", func() error {
		_, err := session.Link(node, true)
		return err
	})
}

The result of this is

--- FAIL: TestExportDir (2.19s)
	mega_test.go:35: Failed to export link (key not included) failed: Access violation

Add login using session key

Hello, it would be great if a function to login using session key was written.

I tried to write it by myself, but I don't know how the API works. I will be very happy if someone could tell me the procedure to follow in order to understand the API behaviour and I will be happy to help you with this thing.

Add use https option

Feature request : Able to generate public link for a folder

Currently the folder node does not generate a valid public link. I think it would be useful feature to be able to export folders.

I have tried to do this myself but there's little to no directions on how to use the API to implement something like this.

In case you do not want to include this feature in the library, any hints regarding how it could be done is also appreciated.

Meaning of accountVersion

Hi, I was reading the code and trying to figure out how login happens and then I found a field in Mega struct which is named accountVersion.
What is the meaning of this field?

Fails to build on ARM Ubuntu

Fails to build with this error on ARM Ubuntu, running within a Chrome OS chroot using dnschneid/crouton, although given my use of it so far, I find it very reasonable to assume that this would be the case even if I weren't running it the way I am.

(precise)ashlynn@localhost:~/build/go-mega$ make
go build
# _/home/ashlynn/build/go-mega
./utils.go:54: buf.Grow undefined (type *bytes.Buffer has no field or method Grow)
make: *** [build] Error 2

Fix for golang-1.22

encoding := "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789AB"

The alphabet has non-unique characters A and B, but starting with golang-1.22 the alpahbet must be unique characters (https://pkg.go.dev/encoding/[email protected]#NewEncoding)

Is there a reason to not use the default characters + and /, i.e.

	encoding := "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"

The full error message that I see:

panic: encoding alphabet includes duplicate symbols

goroutine 86 [running]:
encoding/base64.NewEncoding(...)
	/usr/lib/go/src/encoding/base64/base64.go:82
github.com/t3rm1n4l/go-mega.randString(0xa)
	/home/portage/tmp/portage/net-misc/rclone-1.63.1/work/go-mod/github.com/t3rm1n4l/[email protected]/utils.go:371 +0x299
github.com/t3rm1n4l/go-mega.(*Mega).Delete(0xc000a86000, 0xc000878270, 0xcb?)
	/home/portage/tmp/portage/net-misc/rclone-1.63.1/work/go-mod/github.com/t3rm1n4l/[email protected]/mega.go:1825 +0x11a
github.com/rclone/rclone/backend/mega.(*Fs).deleteNode.func1()
	/home/portage/tmp/portage/net-misc/rclone-1.63.1/work/rclone-1.63.1/backend/mega/mega.go:627 +0x45
github.com/rclone/rclone/fs.pacerInvoker(0x1, 0xa, 0x30?)
	/home/portage/tmp/portage/net-misc/rclone-1.63.1/work/rclone-1.63.1/fs/pacer.go:88 +0x32
github.com/rclone/rclone/lib/pacer.(*Pacer).call(0xc003b16240, 0xc003b12a20, 0xa)
	/home/portage/tmp/portage/net-misc/rclone-1.63.1/work/rclone-1.63.1/lib/pacer/pacer.go:197 +0x7c
github.com/rclone/rclone/lib/pacer.(*Pacer).Call(0xc003b16240, 0xc003b12a20)
	/home/portage/tmp/portage/net-misc/rclone-1.63.1/work/rclone-1.63.1/lib/pacer/pacer.go:216 +0x92
github.com/rclone/rclone/backend/mega.(*Fs).deleteNode(0xc000792d00, {0x558902913e70, 0x558903a8dfe0}, 0xc000878270)
	/home/portage/tmp/portage/net-misc/rclone-1.63.1/work/rclone-1.63.1/backend/mega/mega.go:626 +0xc5
github.com/rclone/rclone/backend/mega.(*Object).Remove(0x558902913e70?, {0x558902913e70?, 0x558903a8dfe0?})
	/home/portage/tmp/portage/net-misc/rclone-1.63.1/work/rclone-1.63.1/backend/mega/mega.go:1202 +0x27
github.com/rclone/rclone/fs/operations.DeleteFileWithBackupDir({0x558902913e70, 0x558903a8dfe0}, {0x558902926b18, 0xc003a69480}, {0x0, 0x0})
	/home/portage/tmp/portage/net-misc/rclone-1.63.1/work/rclone-1.63.1/fs/operations/operations.go:739 +0x279
github.com/rclone/rclone/fs/operations.DeleteFilesWithBackupDir.func1()
	/home/portage/tmp/portage/net-misc/rclone-1.63.1/work/rclone-1.63.1/fs/operations/operations.go:774 +0xfa
created by github.com/rclone/rclone/fs/operations.DeleteFilesWithBackupDir in goroutine 70
	/home/portage/tmp/portage/net-misc/rclone-1.63.1/work/rclone-1.63.1/fs/operations/operations.go:771 +0xd4

Add Support for 2FA

I would like to suggest that support for 2FA be added to the roadmap.
That way the account can keep that layer of security while using this tool.

Thank you

Slow Upload - Speed Decline and Standstill at 1MB

I'm encountering an issue with the upload process in my application. Initially, the upload speed begins at a reasonable 129 kB/s, but rather than improving, it steadily decreases until it reaches 1MB uploaded. At that point, the speed abruptly drops to 0.

Screenshot 2024-02-28 161106

Have you had this problem? Can you help me solve it?

I tried uploading the same file manually through the browser and this didn't happen.

Generate a Debian package

Hi, rclone mega backend cannot be activated under Debian since it depends on go-mega, which is not packaged (see this issue).

Would it be possible to package go-mega as a Debian package?

Error: Unexpected EOF when reading chunked response body

Hi,

I've been trying to use the library to download files off a MEGA account and when I was trying with smaller files it worked great. But when I started to download larger files (>100mb) it started to return unexpected EOF errors for at least one of the chunks (random chunks on every run).

This behaviour exhibit itself even when I tried different number of download workers (1, default 3, 5 etc)

I couldn't pinpoint exactly why but probably the server closed its connection abruptly, causing the response body to return an error when reading it (could be malformed? but somehow still returning 200 OK status. weird)

The error comes from line 711, ioutil.ReadAll

I've written a workaround that simply retries when ioutil failed to read the body and it fixes the issue. Will create a PR soon.

Getting a lot of "Try again" errors

Is this something that is fixable in the library or is it the service that's failing?

I can't really see why it happens and the error description is fairly vague.

Should I just retry X times when getting this error?

Unhandled error on login

Hi, I get this error which seems not handled and it causes a panic on the login method:

panic: runtime error: index out of range [0] with length 0

goroutine 8 [running]:
github.com/t3rm1n4l/go-mega.getMPI(0x1742e48, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
	/Users/vico/go/src/github.com/t3rm1n4l/go-mega/utils.go:195 +0x191
github.com/t3rm1n4l/go-mega.decryptSessionId(0x0, 0x0, 0x0, 0x0, 0xc003c53110, 0x10, 0x10, 0x0, 0x0, 0x0, ...)
	/Users/vico/go/src/github.com/t3rm1n4l/go-mega/utils.go:274 +0x15d
github.com/t3rm1n4l/go-mega.(*Mega).login(0xc0007aba40, 0xc004d59c20, 0x12, 0xc004d59c33, 0x8, 0x0, 0x0)
	/Users/vico/go/src/github.com/t3rm1n4l/go-mega/mega.go:574 +0x485
github.com/t3rm1n4l/go-mega.(*Mega).Login(0xc0007aba40, 0xc004d59c20, 0x12, 0xc004d59c33, 0x8, 0x0, 0xc0007aba40)
	/Users/vico/go/src/github.com/t3rm1n4l/go-mega/mega.go:588 +0x8c

Please provide a LICENSE file

The MIT license requires that the text of the license be provided with the source code. Could you please add such LICENSE file? It would help for distro integration.
Thanks.

A lot or retry api request

Prologue: I'm using go-mega through rclone

I am here to kindly ask what does it means all of these retry

2020/11/10 09:49:28 DEBUG : *go-mega*: Retry API request 1/10: Try again
2020/11/10 09:49:28 DEBUG : *go-mega*: Retry API request 2/10: Try again
2020/11/10 09:49:28 DEBUG : *go-mega*: pollEvents: Parsing event "t": {"a":"t","t":{"f":[{"h":"3ch3lAiQ","t":0,"a":"SGl3AnM6QwGnzXr8HgcrYujlxkChJWNtY6qQ74mtomNT9ljR87Kjxl8Z7oAM__CV","k":"_kyLsFDdbX8:T9OhFfWcvPdANm1SDphlt9Ymu90E5RIKGS63psjlkkc","p":"7VoliIIS","ts":1604998168,"u":"_kyLsFDdbX8","s":432549}]},"ou":"_kyLsFDdbX8"}

I'm syncing a big folder, near 2500 files. And I counted [from console tools] near 3500 occurences of "try again".

I am doing this debug because I've a lot of problem from logging in on mega that happens 'randomly'.

We sync only one time at hour, and are shipping <20 MBytes / hour of new data.

So this is not a bug for me, but I am here to ask for more infor to investigate if the 2 things could be somehow related [all of there retries and my login problems]

nil deference and crash if retries exceeded

The following code in mega.go crashes with a nil deference at line 909. I suspect that when the retries are exceeded that rsp is nil, so rsp.Body dies. I check for nil is advised. I'd also advise a sleep within the retry to give the server time to recover.

                            for retry := 0; retry < m.retries+1; retry++ {
                                    rsp, err = client.Do(req)
                                    if err == nil {
                                            if rsp.StatusCode == 200 {
                                                    break
                                            } else {
                                                    rsp.Body.Close()
                                            }
                                    }
                            }

                            chunk_resp, err = ioutil.ReadAll(rsp.Body)

Unsupported protocol scheme when logging in

Hello, I always get this error while trying to login in my mega account:
Post "myapikey/cs?id=anID": unsupported protocol scheme "".
I thought it was due to 2FA authentication enabled, then I tried to temporarily disable it, but nothing changes.

Issue with connecting to Mega

Hello,
I have an issue with connecting to Mega

$ rclone -vv --mega-debug about mega:
2021/07/29 23:58:23 DEBUG : rclone: Version "v1.56.0" starting with parameters ["rclone" "-vv" "--mega-debug" "about" "mega:"]
2021/07/29 23:58:23 DEBUG : Creating backend with remote "mega:"
2021/07/29 23:58:23 DEBUG : Using config file from "/home/ksj/.config/rclone/rclone.conf"
2021/07/29 23:58:23 DEBUG : mega: detected overridden config - adding "{v6fxV}" suffix to name
2021/07/29 23:58:24 DEBUG : go-mega: Retry API request 1/10: Try again
2021/07/29 23:58:24 DEBUG : go-mega: Retry API request 2/10: Try again
2021/07/29 23:58:24 DEBUG : go-mega: Retry API request 3/10: Try again
2021/07/29 23:58:24 DEBUG : go-mega: Retry API request 4/10: Try again
2021/07/29 23:58:24 DEBUG : go-mega: Retry API request 5/10: Try again
2021/07/29 23:58:24 DEBUG : go-mega: Retry API request 6/10: Try again
2021/07/29 23:58:25 DEBUG : go-mega: Retry API request 7/10: Try again
2021/07/29 23:58:25 DEBUG : go-mega: Retry API request 8/10: Try again
2021/07/29 23:58:27 DEBUG : go-mega: Retry API request 9/10: Try again
2021/07/29 23:58:29 DEBUG : go-mega: Retry API request 10/10: Try again
2021/07/29 23:58:34 Failed to create file system for "mega:": couldn't login: Try again

I tried it on linux and termux with the same version of rclone 1.56.0
On termux first command worked and when I repeated I got this issue. When I deleted storage of termux, copied the rclone config again and test it, it worked again for first command and then every command returns again error code as above.

Can you help me? This issue is only on Mega

[Question] Is possible to delete a gnerated link?

Hi, I use your library for an autemation that get shared link of files present in an Mega account. For do that i use the method mega.Link but there is a way to delete the generated link? Actualy I need to Mega web app, select that file and under "Share" delete the link. Thanks

[Feature Request] set modification time on upload file

I'm analyzing fhe protocol for upload file.
With wireshark I sniffed and decrypted TLS traffic while using megacmd.
When there is an upload there is this POST

POST /cs?id=XXXXX&sid=XXXXXX&ak=XXXXXX&lang=en HTTP/1.1
Host: g.api.mega.co.nz
User-Agent: MEGAcmd/1.2.0.7 (debian 11/Linux 5.10.0-8-amd64 x86_64) MegaClient/3.6.9
Accept: */*
Accept-Encoding: deflate, gzip
Content-Type: application/json
Content-Length: 51

[{"a":"u","v":2,"s":12800,"ms":0,"t":["nqJExLDK"]}]

the latest version of go-mega has only a and s key in json. I don't know what means v : 2 I think version, I don't understand what is ms from cpp code. The key t is for targetuser
I hope someone can help to understand better.

Cannot upload 2.7 GB file

When I try to upload 2.7 GB file via megacmd. It crashes with "panic: runtime error: makeslice: len out of range".

Cmd writes the following errors:

root@euhost:~/megacmd# megacmd put /root/backup/www/server-20140924.tar.gz mega: /backups/ams/
Copying /root/backup/www/server-20140924.tar.gz -> mega:/backups/ams/ # 0.00 % o f 2.7GB at 0B/s 0 panic: runtime error: makeslice: len out of range

goroutine 21 [running]:
runtime.panic(0x8220ce0, 0x8494140)
/usr/lib/go/src/pkg/runtime/panic.c:266 +0xac
github.com/t3rm1n4l/go-mega.func·005()
/root/megacmd/.gopath/src/github.com/t3rm1n4l/go-mega/mega.go:869 +0x218
created by github.com/t3rm1n4l/go-mega.(*Mega).UploadFile
/root/megacmd/.gopath/src/github.com/t3rm1n4l/go-mega/mega.go:926 +0xd64

goroutine 1 [runnable]:
github.com/t3rm1n4l/go-mega.(_Mega).UploadFile(0x18748420, 0xbf9d584f, 0x27, 0x1 887dee0, 0xbf9d5860, ...)
/root/megacmd/.gopath/src/github.com/t3rm1n4l/go-mega/mega.go:939 +0x1a9 5
github.com/t3rm1n4l/megacmd/client.(_MegaClient).Put(0x187006e8, 0xbf9d584f, 0x2 7, 0xbf9d5877, 0x12, ...)
/root/megacmd/.gopath/src/github.com/t3rm1n4l/megacmd/client/client.go:4 88 +0x6dd
main.main()
/root/megacmd/main.go:176 +0x13eb

goroutine 3 [syscall]:
os/signal.loop()
/usr/lib/go/src/pkg/os/signal/signal_unix.go:21 +0x21
created by os/signal.init·1
/usr/lib/go/src/pkg/os/signal/signal_unix.go:27 +0x34

goroutine 4 [syscall]:
runtime.goexit()
/usr/lib/go/src/pkg/runtime/proc.c:1394

goroutine 5 [chan receive]:
main.func·002()
/root/megacmd/main.go:105 +0xaa
created by main.main
/root/megacmd/main.go:108 +0x5e1

goroutine 11 [select]:
net/http.(_persistConn).roundTrip(0x188610f0, 0x188b9dc8, 0x188610f0, 0x0, 0x0)
/usr/lib/go/src/pkg/net/http/transport.go:879 +0x595
net/http.(_Transport).RoundTrip(0x187483c0, 0x18808000, 0x188f5314, 0x0, 0x0)
/usr/lib/go/src/pkg/net/http/transport.go:187 +0x2a2
net/http.send(0x18808000, 0xb756aa30, 0x187483c0, 0x0, 0x0, ...)
/usr/lib/go/src/pkg/net/http/client.go:168 +0x2b3
net/http.(_Client).send(0x1870aae0, 0x18808000, 0x33, 0x80673fa, 0x4)
/usr/lib/go/src/pkg/net/http/client.go:100 +0xb0
net/http.(_Client).doFollowingRedirects(0x1870aae0, 0x18808000, 0x82a6e60, 0x0, 0x0, ...)
/usr/lib/go/src/pkg/net/http/client.go:294 +0x50e
net/http.(_Client).Get(0x1870aae0, 0x187f33c0, 0x33, 0x81d34e0, 0x0, ...)
/usr/lib/go/src/pkg/net/http/client.go:248 +0x98
github.com/t3rm1n4l/go-mega.(_Mega).pollEvents(0x18748420)
/root/megacmd/.gopath/src/github.com/t3rm1n4l/go-mega/mega.go:1195 +0x7b 0
created by github.com/t3rm1n4l/go-mega.(*Mega).getFileSystem
/root/megacmd/.gopath/src/github.com/t3rm1n4l/go-mega/mega.go:601 +0x2e5

goroutine 9 [IO wait]:
net.runtime_pollWait(0xb756bcc0, 0x72, 0x0)
/usr/lib/go/src/pkg/runtime/netpoll.goc:116 +0x61
net.(_pollDesc).Wait(0x1872f478, 0x72, 0xb756a910, 0xb)
/usr/lib/go/src/pkg/net/fd_poll_runtime.go:81 +0x35
net.(_pollDesc).WaitRead(0x1872f478, 0xb, 0xb756a910)
/usr/lib/go/src/pkg/net/fd_poll_runtime.go:86 +0x33
net.(_netFD).Read(0x1872f440, 0x1876c000, 0x1000, 0x1000, 0x0, ...)
/usr/lib/go/src/pkg/net/fd_unix.go:204 +0x234
net.(_conn).Read(0x187008b8, 0x1876c000, 0x1000, 0x1000, 0x0, ...)
/usr/lib/go/src/pkg/net/net.go:122 +0xab
crypto/tls.(_block).readFromUntil(0x1876b060, 0xb756bd80, 0x187008b8, 0x5, 0x187 008b8, ...)
/usr/lib/go/src/pkg/crypto/tls/conn.go:459 +0x99
crypto/tls.(_Conn).readRecord(0x1876a000, 0x17, 0x0, 0x8053823)
/usr/lib/go/src/pkg/crypto/tls/conn.go:539 +0xcb
crypto/tls.(_Conn).Read(0x1876a000, 0x188c9000, 0x1000, 0x1000, 0x0, ...)
/usr/lib/go/src/pkg/crypto/tls/conn.go:897 +0xfc
bufio.(_Reader).fill(0x18802900)
/usr/lib/go/src/pkg/bufio/bufio.go:91 +0xe1
bufio.(_Reader).Peek(0x18802900, 0x1, 0x0, 0x0, 0x0, ...)
/usr/lib/go/src/pkg/bufio/bufio.go:119 +0xb3
net/http.(_persistConn).readLoop(0x18741410)
/usr/lib/go/src/pkg/net/http/transport.go:687 +0xa5
created by net/http.(*Transport).dialConn
/usr/lib/go/src/pkg/net/http/transport.go:528 +0x4c7

goroutine 10 [select]:
net/http.(_persistConn).writeLoop(0x18741410)
/usr/lib/go/src/pkg/net/http/transport.go:791 +0x207
created by net/http.(_Transport).dialConn
/usr/lib/go/src/pkg/net/http/transport.go:529 +0x4dc

goroutine 12 [select]:
github.com/t3rm1n4l/megacmd/client.progressBar(0x188b5570, 0x188a8d20, 0x9f99f17 4, 0x0, 0xbf9d584f, ...)
/root/megacmd/.gopath/src/github.com/t3rm1n4l/megacmd/client/utils.go:15 5 +0x4ee
created by github.com/t3rm1n4l/megacmd/client.(*MegaClient).Put
/root/megacmd/.gopath/src/github.com/t3rm1n4l/megacmd/client/client.go:4 85 +0x68d

goroutine 15 [IO wait]:
net.runtime_pollWait(0xb756bc54, 0x72, 0x0)
/usr/lib/go/src/pkg/runtime/netpoll.goc:116 +0x61
net.(_pollDesc).Wait(0x18897c78, 0x72, 0xb756a910, 0xb)
/usr/lib/go/src/pkg/net/fd_poll_runtime.go:81 +0x35
net.(_pollDesc).WaitRead(0x18897c78, 0xb, 0xb756a910)
/usr/lib/go/src/pkg/net/fd_poll_runtime.go:86 +0x33
net.(_netFD).Read(0x18897c40, 0x187a9000, 0x1000, 0x1000, 0x0, ...)
/usr/lib/go/src/pkg/net/fd_unix.go:204 +0x234
net.(_conn).Read(0x1880cfd0, 0x187a9000, 0x1000, 0x1000, 0x0, ...)
/usr/lib/go/src/pkg/net/net.go:122 +0xab
crypto/tls.(_block).readFromUntil(0x1889d540, 0xb756bd80, 0x1880cfd0, 0x5, 0x188 0cfd0, ...)
/usr/lib/go/src/pkg/crypto/tls/conn.go:459 +0x99
crypto/tls.(_Conn).readRecord(0x187ff480, 0x17, 0x0, 0x8053823)
/usr/lib/go/src/pkg/crypto/tls/conn.go:539 +0xcb
crypto/tls.(_Conn).Read(0x187ff480, 0x188f6000, 0x1000, 0x1000, 0x0, ...)
/usr/lib/go/src/pkg/crypto/tls/conn.go:897 +0xfc
bufio.(_Reader).fill(0x18898510)
/usr/lib/go/src/pkg/bufio/bufio.go:91 +0xe1
bufio.(_Reader).Peek(0x18898510, 0x1, 0x0, 0x0, 0x0, ...)
/usr/lib/go/src/pkg/bufio/bufio.go:119 +0xb3
net/http.(_persistConn).readLoop(0x1889ac80)
/usr/lib/go/src/pkg/net/http/transport.go:687 +0xa5
created by net/http.(*Transport).dialConn
/usr/lib/go/src/pkg/net/http/transport.go:528 +0x4c7

goroutine 16 [select]:
net/http.(_persistConn).writeLoop(0x1889ac80)
/usr/lib/go/src/pkg/net/http/transport.go:791 +0x207
created by net/http.(_Transport).dialConn
/usr/lib/go/src/pkg/net/http/transport.go:529 +0x4dc

goroutine 19 [IO wait]:
net.runtime_pollWait(0xb756bbe8, 0x72, 0x0)
/usr/lib/go/src/pkg/runtime/netpoll.goc:116 +0x61
net.(_pollDesc).Wait(0x187f37f8, 0x72, 0xb756a910, 0xb)
/usr/lib/go/src/pkg/net/fd_poll_runtime.go:81 +0x35
net.(_pollDesc).WaitRead(0x187f37f8, 0xb, 0xb756a910)
/usr/lib/go/src/pkg/net/fd_poll_runtime.go:86 +0x33
net.(_netFD).Read(0x187f37c0, 0x188f8000, 0x1000, 0x1000, 0x0, ...)
/usr/lib/go/src/pkg/net/fd_unix.go:204 +0x234
net.(_conn).Read(0x188b9e40, 0x188f8000, 0x1000, 0x1000, 0x188b9e78, ...)
/usr/lib/go/src/pkg/net/net.go:122 +0xab
bufio.(_Reader).fill(0x18898780)
/usr/lib/go/src/pkg/bufio/bufio.go:91 +0xe1
bufio.(_Reader).Peek(0x18898780, 0x1, 0x1, 0x804dfff, 0x1887cf00, ...)
/usr/lib/go/src/pkg/bufio/bufio.go:119 +0xb3
net/http.(_persistConn).readLoop(0x188610f0)
/usr/lib/go/src/pkg/net/http/transport.go:687 +0xa5
created by net/http.(_Transport).dialConn
/usr/lib/go/src/pkg/net/http/transport.go:528 +0x4c7

goroutine 20 [select]:
net/http.(_persistConn).writeLoop(0x188610f0)
/usr/lib/go/src/pkg/net/http/transport.go:791 +0x207
created by net/http.(_Transport).dialConn
/usr/lib/go/src/pkg/net/http/transport.go:529 +0x4dc

goroutine 22 [runnable]:
github.com/t3rm1n4l/go-mega.func·005()
/root/megacmd/.gopath/src/github.com/t3rm1n4l/go-mega/mega.go:856
created by github.com/t3rm1n4l/go-mega.(*Mega).UploadFile
/root/megacmd/.gopath/src/github.com/t3rm1n4l/go-mega/mega.go:926 +0xd64

goroutine 23 [runnable]:
github.com/t3rm1n4l/go-mega.func·005()
/root/megacmd/.gopath/src/github.com/t3rm1n4l/go-mega/mega.go:856
created by github.com/t3rm1n4l/go-mega.(*Mega).UploadFile
/root/megacmd/.gopath/src/github.com/t3rm1n4l/go-mega/mega.go:926 +0xd64

goroutine 24 [runnable]:
github.com/t3rm1n4l/go-mega.func·005()
/root/megacmd/.gopath/src/github.com/t3rm1n4l/go-mega/mega.go:856
created by github.com/t3rm1n4l/go-mega.(*Mega).UploadFile
/root/megacmd/.gopath/src/github.com/t3rm1n4l/go-mega/mega.go:926 +0xd64

2FA support

Hello, this library doesn't support multi-factor authentication I see.
It would be very useful for my purposes, so I would like to see that feature on this library.

I am disposed to help you with it, even if I have no idea where to start from.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.