Git Product home page Git Product logo

megafuse's People

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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

megafuse's Issues

-disable cache ?

how to disable -cache , when i go into mount directory it downloads everything i click on. and fills my hard drive.

is there -cache-expire-timer something like that ?

Error on download

Hello thank you for the great tool, it is helping me very much. Since couple of days I have a problem with it, sometimes I get "download fallito: -5" and the filesystem is completely unusable, I cannot even give "ls" on directories outside the mount point, everything is fixed when I kill MegaFuse process.

Any idea with that?

thanks

Problem with vector

node found in MEGA: /unrar.php
topen riuscito

download complete

file: /unrar.php ora in stato DOWNLOADING
/usr/include/c++/4.6/debug/vector:313:error: attempt to subscript container
with out-of-bounds index 0, but container only holds 0 elements.

Objects involved in the operation:
sequence "this" @ 0x0x7f6a10000d30 {
type = NSt7__debug6vectorIbSaIbEEE;
}
Aborted

Segmentation Fault

For some reason i got a segmentation fault running a MegaFuse.
What i was doing is transferring files from a server's folder to a mapped mega folder. I could trasfer about 2GB but then it crashed.

 root@seliver:~/git/dropboxtomega#
 [1]+  Segmentation fault      ./MegaFuse > log.txt  (wd: ~/git/MegaFuse)
 (wd now: ~/git/dropboxtomega)

Unfortunatelly that's the only error message i got. In log.txt there were only the "transferring file" messages. How can i turn on debugging?

Warning messages when compiling and finally no mounting

I am running a debian 7. I installed the packages as stated in the tuto and then configured the megafuse.conf accordingly.

But when I compile with make ./MegaFuse I got a lot a warnings like :
"warning: unused variable ‘cryptopp_assert_26’ [-Wunused-variable]"
or
"warning: unused variable ‘p’ [-Wunused-variable]"
or
"warning: ‘std::string CryptoPP::StringNarrow(const wchar_t*, bool)’ defined but not used [-Wunused-function]"

and in the end, it did not mount the drive.

Any chance it already happened to some of you ?

Thanks in advance,

BR

Damien

accounts

my sister and i have two different accounts. is there any way to add more than one account at the same time? my sister is kinda a noob when it comes to the command line all together so id like to just make a cron at start up that would just mount the two accounts at the same time for ease of use and convenience..

MegaFuse "fails", armv7, Ubuntu 15.04

First line of MegaFuse output is really ss /root/.megafuse.conf.

sudo apt-get install -y libcrypto++-dev libdb5.3++-dev libcurl4-openssl-dev libfreeimage-dev libreadline-dev libfuse-dev make

mkdir -p ~/src/megafuse && cd ~/src/megafuse
git clone https://github.com/matteoserva/MegaFuse
cd MegaFuse
make
sudo make install

root@OrangePI ~/src/megafuse/MegaFuse $ sudo MegaFuse -c ~/.megafuse.conf
ss /root/.megafuse.conf
caricata la variabile USERNAME con il valore ****************
caricata la variabile PASSWORD con il valore ******
caricata la variabile MOUNTPOINT con il valore /mega
caricata la variabile CACHEPATH con il valore /cache
MegaFushe::MegaFuse. Constructor finished.
searching node by path: /.megafuse_symlink
Segmentation fault (core dumped)
root@OrangePI ~/src/megafuse/MegaFuse $ cat ~/.megafuse.conf
USERNAME = **********
PASSWORD = *****
MOUNTPOINT = /mega
CACHEPATH = /cache

So MegaFuse finishes immediately after line searching node by path: /.megafuse_symlink

By the way, armv7 is 32-bit little-endian CPU, as well as i386 arch

The same installer on i386 works fine with the same .conf. Here is a normal output on a i386 Ubuntu

ss /home/ubuntu/.megafuse.conf
caricata la variabile USERNAME con il valore *****************
caricata la variabile PASSWORD con il valore ******
caricata la variabile MOUNTPOINT con il valore /mega
Specify a valid cache path (eg: /tmp): /cache
MegaFushe::MegaFuse. Constructor finished.
10 files and 4 folders added or updated
1 user received or updated
[14:03:40] MegaFuse is ready
flags:80000
searching node by path: /.megafuse_symlink
file .megafuse_symlink not found in MEGA
MegaFuse::unserializeSymlink. no symlink stored. Do nothing.
MegaFuse::getAttr Looking for /
/ not found in cache
MegaFuse::getAttr Looking for /
/ not found in cache
MegaFuse::getAttr Looking for /Nightwish.Showtime.Storytime.2013.x264.DVDRip.(AVC).olegek70.mkv
/Nightwish.Showtime.Storytime.2013.x264.DVDRip.(AVC).olegek70.mkv not found in cache
searching node by path: /Nightwish.Showtime.Storytime.2013.x264.DVDRip.(AVC).olegek70.mkv
node found in MEGA: /Nightwish.Showtime.Storytime.2013.x264.DVDRip.(AVC).olegek70.mkv
MegaFuse::getAttr Looking for /Nightwish.mp4
/Nightwish.mp4 not found in cache
searching node by path: /Nightwish.mp4
node found in MEGA: /Nightwish.mp4
MegaFuse::getAttr Looking for /megatools-1.9.96-fs.tar.gz
/megatools-1.9.96-fs.tar.gz not found in cache
searching node by path: /megatools-1.9.96-fs.tar.gz
node found in MEGA: /megatools-1.9.96-fs.tar.gz
MegaFuse::getAttr Looking for /megatools-1.9.96.tar.gz
/megatools-1.9.96.tar.gz not found in cache
searching node by path: /megatools-1.9.96.tar.gz
node found in MEGA: /megatools-1.9.96.tar.gz
MegaFuse::getAttr Looking for /sqfs
/sqfs not found in cache
searching node by path: /sqfs
node found in MEGA: /sqfs
MegaFuse::getAttr Looking for /
/ not found in cache
MegaFuse::getAttr Looking for /sqfs
/sqfs not found in cache
searching node by path: /sqfs
node found in MEGA: /sqfs
....
....
....

Finally, here are dependencies:

$ ldd `command -v MegaFuse`
    libcrypto++.so.9 => /usr/lib/libcrypto++.so.9 (0xb6c87000)
    libfreeimage.so.3 => /usr/lib/libfreeimage.so.3 (0xb6c0e000)
    libdb_cxx-5.3.so => /usr/lib/arm-linux-gnueabihf/libdb_cxx-5.3.so (0xb6adc000)
    libcurl.so.4 => /usr/lib/arm-linux-gnueabihf/libcurl.so.4 (0xb6a8a000)
    libfuse.so.2 => /lib/arm-linux-gnueabihf/libfuse.so.2 (0xb6a58000)
    libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0xb699e000)
    libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb6928000)
    libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0xb68ff000)
    libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0xb68eb000)
    libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb67fd000)
    /lib/ld-linux-armhf.so.3 (0xb6f8a000)
    libjpeg.so.8 => /usr/lib/arm-linux-gnueabihf/libjpeg.so.8 (0xb67be000)
    libopenjpeg.so.5 => /usr/lib/arm-linux-gnueabihf/libopenjpeg.so.5 (0xb6796000)
    libz.so.1 => /lib/arm-linux-gnueabihf/libz.so.1 (0xb6774000)
    libIlmImf.so.6 => /usr/lib/arm-linux-gnueabihf/libIlmImf.so.6 (0xb66d9000)
    libHalf.so.6 => /usr/lib/arm-linux-gnueabihf/libHalf.so.6 (0xb6686000)
    libIex.so.6 => /usr/lib/arm-linux-gnueabihf/libIex.so.6 (0xb6662000)
    libraw.so.10 => /usr/lib/arm-linux-gnueabihf/libraw.so.10 (0xb65ca000)
    libpng12.so.0 => /lib/arm-linux-gnueabihf/libpng12.so.0 (0xb65a2000)
    libtiff.so.5 => /usr/lib/arm-linux-gnueabihf/libtiff.so.5 (0xb653e000)
    libidn.so.11 => /usr/lib/arm-linux-gnueabihf/libidn.so.11 (0xb6507000)
    librtmp.so.1 => /usr/lib/arm-linux-gnueabihf/librtmp.so.1 (0xb64e3000)
    libssl.so.1.0.0 => /lib/arm-linux-gnueabihf/libssl.so.1.0.0 (0xb649b000)
    libcrypto.so.1.0.0 => /lib/arm-linux-gnueabihf/libcrypto.so.1.0.0 (0xb6383000)
    libgssapi_krb5.so.2 => /usr/lib/arm-linux-gnueabihf/libgssapi_krb5.so.2 (0xb6349000)
    liblber-2.4.so.2 => /usr/lib/arm-linux-gnueabihf/liblber-2.4.so.2 (0xb6330000)
    libldap_r-2.4.so.2 => /usr/lib/arm-linux-gnueabihf/libldap_r-2.4.so.2 (0xb62fd000)
    libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0xb62e9000)
    libIlmThread.so.6 => /usr/lib/arm-linux-gnueabihf/libIlmThread.so.6 (0xb62d4000)
    libjasper.so.1 => /usr/lib/arm-linux-gnueabihf/libjasper.so.1 (0xb628b000)
    liblcms2.so.2 => /usr/lib/arm-linux-gnueabihf/liblcms2.so.2 (0xb6245000)
    libgomp.so.1 => /usr/lib/arm-linux-gnueabihf/libgomp.so.1 (0xb6224000)
    liblzma.so.5 => /lib/arm-linux-gnueabihf/liblzma.so.5 (0xb6203000)
    libjbig.so.0 => /usr/lib/arm-linux-gnueabihf/libjbig.so.0 (0xb61e8000)
    libgnutls-deb0.so.28 => /usr/lib/arm-linux-gnueabihf/libgnutls-deb0.so.28 (0xb6125000)
    libhogweed.so.2 => /usr/lib/arm-linux-gnueabihf/libhogweed.so.2 (0xb60f0000)
    libnettle.so.4 => /usr/lib/arm-linux-gnueabihf/libnettle.so.4 (0xb60b7000)
    libgmp.so.10 => /usr/lib/arm-linux-gnueabihf/libgmp.so.10 (0xb605b000)
    libkrb5.so.3 => /usr/lib/arm-linux-gnueabihf/libkrb5.so.3 (0xb5fc8000)
    libk5crypto.so.3 => /usr/lib/arm-linux-gnueabihf/libk5crypto.so.3 (0xb5f94000)
    libcom_err.so.2 => /lib/arm-linux-gnueabihf/libcom_err.so.2 (0xb5f81000)
    libkrb5support.so.0 => /usr/lib/arm-linux-gnueabihf/libkrb5support.so.0 (0xb5f6a000)
    libresolv.so.2 => /lib/arm-linux-gnueabihf/libresolv.so.2 (0xb5f49000)
    libsasl2.so.2 => /usr/lib/arm-linux-gnueabihf/libsasl2.so.2 (0xb5f28000)
    libgssapi.so.3 => /usr/lib/arm-linux-gnueabihf/libgssapi.so.3 (0xb5ef3000)
    libgcrypt.so.20 => /lib/arm-linux-gnueabihf/libgcrypt.so.20 (0xb5e64000)
    libp11-kit.so.0 => /usr/lib/arm-linux-gnueabihf/libp11-kit.so.0 (0xb5e2b000)
    libtasn1.so.6 => /usr/lib/arm-linux-gnueabihf/libtasn1.so.6 (0xb5e0e000)
    libkeyutils.so.1 => /lib/arm-linux-gnueabihf/libkeyutils.so.1 (0xb5dfb000)
    libheimntlm.so.0 => /usr/lib/arm-linux-gnueabihf/libheimntlm.so.0 (0xb5de5000)
    libkrb5.so.26 => /usr/lib/arm-linux-gnueabihf/libkrb5.so.26 (0xb5d85000)
    libasn1.so.8 => /usr/lib/arm-linux-gnueabihf/libasn1.so.8 (0xb5d1a000)
    libhcrypto.so.4 => /usr/lib/arm-linux-gnueabihf/libhcrypto.so.4 (0xb5ce6000)
    libroken.so.18 => /usr/lib/arm-linux-gnueabihf/libroken.so.18 (0xb5cc9000)
    libgpg-error.so.0 => /lib/arm-linux-gnueabihf/libgpg-error.so.0 (0xb5cae000)
    libffi.so.6 => /usr/lib/arm-linux-gnueabihf/libffi.so.6 (0xb5c98000)
    libwind.so.0 => /usr/lib/arm-linux-gnueabihf/libwind.so.0 (0xb5c60000)
    libheimbase.so.1 => /usr/lib/arm-linux-gnueabihf/libheimbase.so.1 (0xb5c46000)
    libhx509.so.5 => /usr/lib/arm-linux-gnueabihf/libhx509.so.5 (0xb5c0a000)
    libsqlite3.so.0 => /usr/lib/arm-linux-gnueabihf/libsqlite3.so.0 (0xb5b83000)
    libcrypt.so.1 => /lib/arm-linux-gnueabihf/libcrypt.so.1 (0xb5b44000)

preserve mtime

When I download a file, mtime remains the same.
But when I upload a file, mtime changes to the current timestamp. Would it be easy to preserve it as well, please?

Thanks for the software!

MegaFuse crashes when I try to access the mounted filesystem with a gnome file dialog etc.

Hello, I am running megafuse on 32 bit Archlinux. I compiled the latest git version. I did most of my uploading with a 64 bit desktop, now I am trying to access my files. Every time I try to add a file to the playlist in DeadBeef from my mega drive, it crashes. Every time I try to scan the drive with cmus, it crashes. I can freely parse through it with cd and ls, but none of the applications are able to access the data without crashing.
This is the output:
topen riuscito
download fallito: -20
/usr/include/c++/4.9.0/debug/safe_iterator.h:275:error: attempt to
dereference a past-the-end iterator.

Objects involved in the operation:
iterator "this" @ 0x0xb64c6fa8 {
type = N11__gnu_debug14_Safe_iteratorINSt8__detail14_Node_iteratorISt4pairIKSs14file_cache_rowELb0ELb1EEENSt7__debug13unordered_mapISsS5_St4hashISsESt8equal_toISsESaIS6_EEEEE (mutable iterator);
state = past-the-end;
references sequence with type `NSt7__debug13unordered_mapISs14file_cache_rowSt4hashISsESt8equal_toISsESaISt4pairIKSsS1_EEEE' @ 0x0x9633098
}
Aborted (core dumped)

I will try compiling it with the c++11 enabled and see what happens.

Also, it's 2014, please use streams and not printf() :)

Multiple accounts

This is not related to issue #27.

I want to be able to use multiple accounts at the same time.
MegaFuse would split the files to store on multiple mega.nz accounts and retrieve them from there.

Wouldn't that be amazing?! Tell me you're already doing that

Implementation of extended attributes

Hi there!

First, I would like to thank you for this wonderful project. MegaFuse works simply perfect! I have it some accounts set up and loaded on my fstab and I can even stream videos flawlessly! I love it!
I was trying to "merge" all my mega accounts space into a single and big one, so I tried first unionfs, and it worked, but only for reading... when I write on the merged filesystem, It only writes on the first megafuse FS... so I though to do it with GlusterFS, using megafuse instances as bricks for the cluster. If it would work, we could have a very large storage pool based on mega. GlusterFS, unlike UnionFS, has a lot of metadata and a structure and it knows where the data can end, so we could write on the glusterfs (based also on fuse), and it will send the data to the right brick.
The problem is we cannot assemble a gluster cluster, because it needs extended attributes on the underlying filesystem, and it seems MegaFuse does not have them.
I can create a volume, cheating the gluster volume create command, by assembling the gluster with my underlying filesystem, and then, mount upon it the megafuse. But when I try to start the gluster volume, it complains about the extended attributes.

# gluster volume info

Volume Name: mega
Type: Distribute
Volume ID: 7406bda3-91f4-4e45-96af-1c9646db18de
Status: Created
Number of Bricks: 2
Transport-type: tcp
Bricks:
Brick1: malevo:/pool/brick1/data
Brick2: malevo:/pool/brick2/data

# gluster volume start mega
volume start: mega: failed: Failed to get extended attribute trusted.glusterfs.volume-id for brick dir /pool/brick1/data. Reason : Operation not supported.

If I try to get the extended attributes, I get:

getfattr brick1
getfattr: brick1: Operation not supported.

So, is there any chance to implement extended attributes on MegaFuse in order to set up upon it another filesystem?

MegaFuse aborts with "errore mutex in nodebypath"

I've a quite new Mega.co.nz account, with no much data, and here's what happens when I run MegaFuse

caricata la variabile USERNAME con il valore ***@***.***
caricata la variabile PASSWORD con il valore ****************
caricata la variabile APPKEY con il valore *******
caricata la variabile MOUNTPOINT con il valore /tmp/mount
2 files and 2 folders added or updated
2 users received or updated
/usr/bin/notify-send
[15:28:19] MegaFuse is ready
/.Trash not found in cache
errore mutex in nodebypath
Annullato (core dump creato)

Here's what gdb says about:

[New Thread 0x7fffef2ba700 (LWP 26091)]
[New Thread 0x7fffeeab9700 (LWP 26092)]
[Thread 0x7fffeeab9700 (LWP 26092) exited]
2 files and 2 folders added or updated
2 users received or updated
[New Thread 0x7fffeeab9700 (LWP 26093)]
/usr/bin/notify-send
[Thread 0x7fffeeab9700 (LWP 26093) exited]
[15:34:55] MegaFuse is ready
[New Thread 0x7fffedca3700 (LWP 26102)]
[New Thread 0x7fffed4a2700 (LWP 26103)]
/.Trash not found in cache
errore mutex in nodebypath

Program received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffed4a2700 (LWP 26103)]
0x00007ffff601ff79 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
56  ../nptl/sysdeps/unix/sysv/linux/raise.c: File o directory non esistente.
(gdb) bt full
#0  0x00007ffff601ff79 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
        resultvar = 0
        pid = 26087
        selftid = 26103
#1  0x00007ffff6023388 in __GI_abort () at abort.c:89
        save_stage = 2
        act = {__sigaction_handler = {sa_handler = 0x578a80, sa_sigaction = 0x578a80}, sa_mask = {__val = {
              140737174444880, 140737174444544, 140737351947607, 5, 0, 1, 140737320516904, 5737088, 
              140737174444544, 140737353613368, 140737351976213, 27, 18446744073709551615, 
              140737324427744, 140737354100736, 1}}, sa_flags = 2036491620, sa_restorer = 0x3}
        sigs = {__val = {32, 0 <repeats 15 times>}}
#2  0x000000000043b84f in MegaFuseModel::nodeByPath (this=0x53dd90, path=...) at src/megafusemodel.cpp:94
        oldpath = {static npos = <optimized out>, 
          _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7fffe4000ab8 "/.Trash"}}
        n = 0x7fffed4a1a3f
        pos = 0
#3  0x000000000042e330 in MegaFuse::getAttr (this=0x7fffffffd7a0, path=0x7fffe4000990 "/.Trash", 
    stbuf=0x7fffed4a1b60) at src/MegaFuse.cpp:84
        lock2 = {_M_device = @0x7fffffffd828}
        n = 0x523b80 <api_mutex>
#4  0x0000000000446404 in hello_getattr (path=0x7fffe4000990 "/.Trash", stbuf=0x7fffed4a1b60)
    at src/fuseImpl.cpp:27
        lock = {_M_device = @0x523b80}
#5  0x00007ffff6bd96a8 in ?? () from /lib/x86_64-linux-gnu/libfuse.so.2
No symbol table info available.
#6  0x00007ffff6bd98dd in ?? () from /lib/x86_64-linux-gnu/libfuse.so.2
No symbol table info available.
#7  0x00007ffff6be425b in ?? () from /lib/x86_64-linux-gnu/libfuse.so.2
No symbol table info available.
#8  0x00007ffff6be0e79 in ?? () from /lib/x86_64-linux-gnu/libfuse.so.2
No symbol table info available.
#9  0x00007ffff5dd3182 in start_thread (arg=0x7fffed4a2700) at pthread_create.c:312
        __res = <optimized out>
        pd = 0x7fffed4a2700
---Type <return> to continue, or q <return> to quit---
        now = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737174447872, -4734296272686211713, 1, 0, 
                140737174448576, 140737174447872, 4734334391576501631, 4734282827503181183}, 
              mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, 
              canceltype = 0}}}
        not_first_call = <optimized out>
        pagesize_m1 = <optimized out>
        sp = <optimized out>
        freesize = <optimized out>
        __PRETTY_FUNCTION__ = "start_thread"
#10 0x00007ffff60e430d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
No locals.

Java method to move file to megafuse mapped folder

Hi.
I'm working on a little project to move files from one directory to the mega mapped folder.
I tried using File renameTo and Runtime.getRuntime().exec("mv...") but neither of those work. Can this be related to megafuse? Is there a possibility java not being able to move files there?

Does not compíle on Fedora 21

Hello,
I am trying to compile on Fedora 21, but I am getting this erros (after fiddling with dependencies, which I think is ok now):

$ make
g++ -I inc -I /usr/include/cryptopp -I sdk -std=c++0x -O0 -g -fstack-protector-all -Wall -D_FILE_OFFSET_BITS=64 -I/usr/include/fuse -D_GLIBCXX_DEBUG -c src/megacli.cpp -o src/megacli.o
src/megacli.cpp: In function ‘void createthumbnail(const char_, unsigned int, std::string_)’:
src/megacli.cpp:104:43: error: ‘JPEG_EXIFROTATE’ was not declared in this scope
if (!(dib = FreeImage_Load(fif,filename,JPEG_EXIFROTATE | JPEG_FAST | (size << 16)))) return;
^
src/megacli.cpp:115:53: error: ‘FIF_RAW’ was not declared in this scope
if (!(dib = FreeImage_Load(fif, filename, (fif == FIF_RAW) ? RAW_PREVIEW : 0))) return;
^
src/megacli.cpp:115:64: error: ‘RAW_PREVIEW’ was not declared in this scope
if (!(dib = FreeImage_Load(fif, filename, (fif == FIF_RAW) ? RAW_PREVIEW : 0))) return;
^
src/megacli.cpp:146:50: error: ‘JPEG_BASELINE’ was not declared in this scope
if (FreeImage_SaveToMemory(FIF_JPEG,dib,hmem,JPEG_BASELINE | JPEG_OPTIMIZE | 85))
^
src/megacli.cpp:146:66: error: ‘JPEG_OPTIMIZE’ was not declared in this scope
if (FreeImage_SaveToMemory(FIF_JPEG,dib,hmem,JPEG_BASELINE | JPEG_OPTIMIZE | 85))
^
src/megacli.cpp: In function ‘void setprompt(prompttype)’:
src/megacli.cpp:852:3: warning: statement has no effect [-Wunused-value]
rl_callback_handler_install(get_prompt(),process_line);
^
src/megacli.cpp: In function ‘void process_line(char_)’:
src/megacli.cpp:1055:23: warning: statement has no effect [-Wunused-value]
if (words.size()) add_history(line);
^
In file included from /usr/include/cryptopp/modes.h:12:0,
from sdk/megacrypto.h:25,
from src/megacli.cpp:57:
/usr/include/cryptopp/algparam.h: In instantiation of ‘CryptoPP::ConstByteArrayParameter::ConstByteArrayParameter(const T&, bool) [with T = std::basic_string]’:
/usr/include/cryptopp/filters.h:793:132: required from here
/usr/include/cryptopp/algparam.h:26:69: warning: unused variable ‘cryptopp_assert_26’ [-Wunused-variable]
CRYPTOPP_COMPILE_ASSERT(sizeof(CPP_TYPENAME T::value_type) == 1);
^
In file included from /usr/include/cryptopp/modes.h:12:0,
from sdk/megacrypto.h:25,
from src/megacli.cpp:57:
/usr/include/cryptopp/algparam.h: In instantiation of ‘void CryptoPP::AlgorithmParametersTemplate::MoveInto(void_) const [with T = CryptoPP::RandomNumberGenerator_]’:
src/megacli.cpp:2366:1: required from here
/usr/include/cryptopp/algparam.h:322:35: warning: unused variable ‘p’ [-Wunused-variable]
AlgorithmParametersTemplate_ p = new(buffer) AlgorithmParametersTemplate(this);
^
src/megacli.cpp: At global scope:
src/megacli.cpp:928:6: warning: ‘void process_line(char
)’ defined but not used [-Wunused-function]
void process_line(char* line)
^
src/megacli.cpp:839:20: warning: ‘const char* get_prompt()’ defined but not used [-Wunused-function]
static const char* get_prompt(void)
^
In file included from /usr/include/cryptopp/secblock.h:7:0,
from /usr/include/cryptopp/modes.h:8,
from sdk/megacrypto.h:25,
from src/megacli.cpp:57:
/usr/include/cryptopp/misc.h:548:20: warning: ‘std::string CryptoPP::StringNarrow(const wchar_t_, bool)’ defined but not used [-Wunused-function]
static std::string StringNarrow(const wchar_t *str, bool throwOnError = true)
^
Makefile:43: recipe for target 'src/megacli.o' failed
make: *_* [src/megacli.o] Error 1

Any help will be appreciated.
ufa

Async?

Hello, is there any possibilities to implement this? It seems that it does sequential tasks or is it the MEGA API? To reproduce this try to upload a big file and download something, until the upload isn't finished the download won't start. Thank you!

P.S.: Great job with this project!

File list is obtained by using a File Manager of Debian 7.5 32bit causes abort.

The abort appears to occurs due to listing the mount point files with the GUI File Manager. If the ls command is issued from a Terminal then the list of files causes no issues and MegaFuse operates as expected.

Sample .mp4 file utilized for testing.

Terminal Displays:

searching node by path: /2014 BMW M4 Coupe - INTERIOR.mp4
node found in MEGA: /2014 BMW M4 Coupe - INTERIOR.mp4
resuming paused download11
resuming paused download
searching node by path: /2014 BMW M4 Coupe - INTERIOR.mp4
node found in MEGA: /2014 BMW M4 Coupe - INTERIOR.mp4
topen riuscito
download fallito: -20
/usr/include/c++/4.7/debug/safe_iterator.h:278:error: attempt to
dereference a past-the-end iterator.

Objects involved in the operation:
iterator "this" @ 0x0xb6339e38 {
type = N11__gnu_debug14_Safe_iteratorINSt8__detail14_Node_iteratorISt4pairIKSs14file_cache_rowELb0ELb1EEENSt7__debug13unordered_mapISsS5_St4hashISsESt8equal_toISsESaISsEEEEE (mutable iterator);
state = past-the-end;
references sequence with type `NSt7__debug13unordered_mapISs14file_cache_rowSt4hashISsESt8equal_toISsESaISsEEE' @ 0x0xb6339e38
}
Aborted

Error when copying new file

Hi,
Im trying to use MegaFuse on my debian server.
When i copy some files its working but randomly, when copying a big folder, I got the following error:

UPLOAD TD 0: Update: 74KB of 74KB, 373 KB/sTD 0: Failed, HTTP error code 0 (count 0)

The count is sometimes 1, 2, 3, 4,... but its a random pattern.
Then the error keep flooding the screen until i kill the process and unmount the share.

Any idea?

rsync to MegaFuse directory

Hi,
I am trying to use rsync to copy over a folder to the directory mounted by MegaFuse.
At first, the copy seems to work but after some files, rsync stops with an error regarding the first file it tried to copy :
rsync: write failed on "/mnt/mega/.encfs6.xml": Operation not permitted (1) rsync error: error in file IO (code 11) at receiver.c(393) [receiver=3.1.1]

At the same time, I have a lot of errors like this in the console where I started MegaFuse :
searching node by path: /PATH file FILENAME not found in MEGA

Copying with a cp command seems to work fine so I am wondering why rsync is not working.

Thanks

Crash on filesizes over 1GB

It seems that megafuse crashes when trying to read from a file thats bigger than 1GB. This happened while using plex to watch movie files through megafuse. Files under 1GB were loading just fine.
If it's any help, it seems to happen after line 113 in MegaFuseApp.cpp
printf("topen riuscito\n");
Atleast that's the last thing printed before the crash.

Edit:
This issue happens at ~2GB.
I'm now certain that this issue is because of the size values of files are stored in 32bit signed integers. However i can't figure out how to efficiently fix this. I have however succeded in stopping the program from crashing when reading files over 2GB. It still cant play/load the files correctly in plex though.
The integers will have to be changed to unsigned 32 bit integers for double the file size or 64 bit integers to completely remove the problem.

Edit 2:
I seem to have fixed the issue now. Updated some of the values around the code from size_t and int to unsigned int's. Will probably try making them 64 bit integers later. Plex loads the over 2GB files now, however it should have problems with over 4GB files. I probably changed more than what was necessary, but it seems to work. Code isn't tested properly yet. Can't upload my zip here for some reason though, use the link to grab the code instead.

https://mega.nz/#!ns9CUIoQ!mk7XF_-eRQg-apLy9e3SmCnoTtrVNF7ACYN7NEUuboI

Edit 3:
As expected files over ~4.3GB crashes the program. Working on the 64 bit signed integers.

Edit 4:
MegaFuse now loads programs of almost infinite filesizes. Praise 64bit integers. Program is probably full of bugs and i will have to use it for some time to sort those out. In the meantime anyone can take a look at it here:

https://mega.nz/#!S8kmTKxI!sGEokle3vNc9frez0J6V4guInp-kaluNRdOAplg5MJc

note: Make sure to compile as 64bit program.

rsync?

It seems rsync doesn't really work, in that it always transfers the files, also if they are already there. Is this a problem with the Mega API, or in the implementation of MegaFuse?

doesn't work with live/rescue/boot cd

i was trying to backup a cloned copy of my os partition straight on to mega.co.nz by mounting it with megafuse from a boot cd.

i was able to mount the mega file system and copy smaller files but it fails halfway through when trying to copy a 40gb partition. i tried with dd, partclone, fsarchiver.

i think the reason is because megafuse ran out of temporary space on the ramdrive.

does megafuse copy files to a temp disk location before beginning upload to mega?

could this somehow be avoided and upload directly to mega so we can use megafuse from boot cds where temp drive space is low or unavailable?

thanks!

make error (debian jessie)

Been trying to compile this thing for a week now with no avail. Everything needed is installed already. Always fails on the misc.h crypto++ part. Here's my log file of the error in question:

make: pkg-config: Command not found
g++ -I inc -I /usr/include/cryptopp -I sdk -std=c++0x -O0 -g -fstack-protector-all -Wall -D_GLIBCXX_DEBUG -c src/MegaFuseApp.cpp -o src/MegaFuseApp.o
In file included from /usr/include/fuse/fuse.h:26:0,
from /usr/include/fuse.h:9,
from inc/megafusemodel.h:7,
from src/MegaFuseApp.cpp:9:
/usr/include/fuse/fuse_common.h:33:2: error: #error Please add -D_FILE_OFFSET_BITS=64 to your compile flags!
#error Please add -D_FILE_OFFSET_BITS=64 to your compile flags!
^
src/MegaFuseApp.cpp: In member function ‘virtual void MegaFuseApp::transfer_update(int, m_off_t, m_off_t, dstime)’:
src/MegaFuseApp.cpp:360:46: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
} else if(endChunk > startChunk && endChunk < it->second.availableChunks.size() && it->second.availableChunks[endChunk]) {
^
In file included from /usr/include/cryptopp/secblock.h:7:0,
from /usr/include/cryptopp/modes.h:8,
from sdk/megacrypto.h:25,
from src/MegaFuseApp.cpp:7:
/usr/include/cryptopp/algparam.h: In instantiation of ‘CryptoPP::ConstByteArrayParameter::ConstByteArrayParameter(const T&, bool) [with T = std::basic_string]’:
/usr/include/cryptopp/filters.h:793:132: required from here
/usr/include/cryptopp/misc.h:59:118: warning: unused variable ‘cryptopp_assert_26’ [-Wunused-variable]
#define CRYPTOPP_COMPILE_ASSERT_INSTANCE(assertion, instance) static CompileAssert<(assertion)> CRYPTOPP_ASSERT_JOIN(cryptopp_assert_, instance)
^
/usr/include/cryptopp/misc.h:62:39: note: in definition of macro ‘CRYPTOPP_DO_ASSERT_JOIN’
#define CRYPTOPP_DO_ASSERT_JOIN(X, Y) X##Y
^
/usr/include/cryptopp/misc.h:59:97: note: in expansion of macro ‘CRYPTOPP_ASSERT_JOIN’
#define CRYPTOPP_COMPILE_ASSERT_INSTANCE(assertion, instance) static CompileAssert<(assertion)> CRYPTOPP_ASSERT_JOIN(cryptopp_assert_, instance)
^
/usr/include/cryptopp/misc.h:55:44: note: in expansion of macro ‘CRYPTOPP_COMPILE_ASSERT_INSTANCE’
#define CRYPTOPP_COMPILE_ASSERT(assertion) CRYPTOPP_COMPILE_ASSERT_INSTANCE(assertion, LINE)
^
/usr/include/cryptopp/algparam.h:26:9: note: in expansion of macro ‘CRYPTOPP_COMPILE_ASSERT’
CRYPTOPP_COMPILE_ASSERT(sizeof(CPP_TYPENAME T::value_type) == 1);
^
In file included from /usr/include/cryptopp/modes.h:12:0,
from sdk/megacrypto.h:25,
from src/MegaFuseApp.cpp:7:
/usr/include/cryptopp/algparam.h: In instantiation of ‘void CryptoPP::AlgorithmParametersTemplate::MoveInto(void_) const [with T = CryptoPP::RandomNumberGenerator_]’:
src/MegaFuseApp.cpp:377:1: required from here
/usr/include/cryptopp/algparam.h:322:35: warning: unused variable ‘p’ [-Wunused-variable]
AlgorithmParametersTemplate* p = new(buffer) AlgorithmParametersTemplate(this);
^
In file included from /usr/include/cryptopp/secblock.h:7:0,
from /usr/include/cryptopp/modes.h:8,
from sdk/megacrypto.h:25,
from src/MegaFuseApp.cpp:7:
/usr/include/cryptopp/misc.h: At global scope:
/usr/include/cryptopp/misc.h:549:20: warning: ‘std::string CryptoPP::StringNarrow(const wchar_t
, bool)’ defined but not used [-Wunused-function]
static std::string StringNarrow(const wchar_t str, bool throwOnError = true)
^
Makefile:43: recipe for target 'src/MegaFuseApp.o' failed
make: *
* [src/MegaFuseApp.o] Error 1

cryptlib.h: No such file or directory

I am on Debian, I installed all required packages. Then I tried: "make", so which package I am missing here?

g++ -I inc -I /usr/include/cryptopp -I sdk -std=c++0x -O0 -g -fstack-protector-all -Wall  -D_FILE_OFFSET_BITS=64 -I/usr/include/fuse  -D_GLIBCXX_DEBUG  -c src/MegaFuseApp.cpp -o src/MegaFuseApp.o
In file included from src/MegaFuseApp.cpp:7:0:
sdk/megacrypto.h:24:22: fatal error: cryptlib.h: No such file or directory
 #include <cryptlib.h>
                      ^
compilation terminated.
Makefile:43: recipe for target 'src/MegaFuseApp.o' failed
make: *** [src/MegaFuseApp.o] Error 1

Reconnect mode, File Cache Size and Disable File Caching

According to http://shfs.sourceforge.net/install.html

SHFS supports reconnect mode. Has this been tested with MegaFuse? Could this be workable method to ensure that endpoints are reconnected even when network conditions are unreliable?

To make mount survive temporary connection outage (reconnect mode):
shfsmount --persistent user@host /mnt/shfs

Additionally, could there be an ability to specify the cache size? It's not clear how the caching of MegaFuse and SHFS work together.

Longer transfers? Increase cache size (1MB cache per file):
shfsmount user@host /mnt/shfs -o cachesize=256

Finally, could there be the ability to disable caching when copying files to mount point when the file system doesn't have enough disk space. For example, copying a 15GB file to /megafs mount point would fail if only 10GB of space is remaining on the local disk. To avoid this condition MegaFuse could be started with -o cachesize=0 or similar operator to temporarily disable caching to enable large files to be copied or moved to /megafs mount point even if disk space is limited.

Password storage security

It would be very good to have the password stored not as plaintext, for trivial reasons. Setting permissions to the config file goes only so far in way of security.

Build error in CentOS 7

make

g++ -I inc -I /usr/include/cryptopp -I sdk -std=c++0x -O0 -g -fstack-protector-all -Wall -D_FILE_OFFSET_BITS=64 -I/usr/include/fuse -D_GLIBCXX_DEBUG -c src/megacli.cpp -o src/megacli.o
src/megacli.cpp: In function ‘void createthumbnail(const char_, unsigned int, std::string_)’:
src/megacli.cpp:104:43: error: ‘JPEG_EXIFROTATE’ was not declared in this scope
if (!(dib = FreeImage_Load(fif,filename,JPEG_EXIFROTATE | JPEG_FAST | (size << 16)))) return;
^
src/megacli.cpp:115:53: error: ‘FIF_RAW’ was not declared in this scope
if (!(dib = FreeImage_Load(fif, filename, (fif == FIF_RAW) ? RAW_PREVIEW : 0))) return;
^
src/megacli.cpp:115:64: error: ‘RAW_PREVIEW’ was not declared in this scope
if (!(dib = FreeImage_Load(fif, filename, (fif == FIF_RAW) ? RAW_PREVIEW : 0))) return;
^
src/megacli.cpp:146:50: error: ‘JPEG_BASELINE’ was not declared in this scope
if (FreeImage_SaveToMemory(FIF_JPEG,dib,hmem,JPEG_BASELINE | JPEG_OPTIMIZE | 85))
^
src/megacli.cpp:146:66: error: ‘JPEG_OPTIMIZE’ was not declared in this scope
if (FreeImage_SaveToMemory(FIF_JPEG,dib,hmem,JPEG_BASELINE | JPEG_OPTIMIZE | 85))
^
src/megacli.cpp: In function ‘void setprompt(prompttype)’:
src/megacli.cpp:852:56: warning: statement has no effect [-Wunused-value]
rl_callback_handler_install(get_prompt(),process_line);
^
src/megacli.cpp: In function ‘void process_line(char_)’:
src/megacli.cpp:1055:39: warning: statement has no effect [-Wunused-value]
if (words.size()) add_history(line);
^
In file included from /usr/include/cryptopp/secblock.h:7:0,
from /usr/include/cryptopp/modes.h:8,
from sdk/megacrypto.h:25,
from src/megacli.cpp:57:
/usr/include/cryptopp/algparam.h: In instantiation of ‘CryptoPP::ConstByteArrayParameter::ConstByteArrayParameter(const T&, bool) [with T = std::basic_string]’:
/usr/include/cryptopp/filters.h:793:132: required from here
/usr/include/cryptopp/misc.h:58:118: warning: unused variable ‘cryptopp_assert_26’ [-Wunused-variable]
#define CRYPTOPP_COMPILE_ASSERT_INSTANCE(assertion, instance) static CompileAssert<(assertion)> CRYPTOPP_ASSERT_JOIN(cryptopp_assert_, instance)
^
/usr/include/cryptopp/misc.h:61:39: note: in definition of macro ‘CRYPTOPP_DO_ASSERT_JOIN’
#define CRYPTOPP_DO_ASSERT_JOIN(X, Y) X##Y
^
/usr/include/cryptopp/misc.h:58:97: note: in expansion of macro ‘CRYPTOPP_ASSERT_JOIN’
#define CRYPTOPP_COMPILE_ASSERT_INSTANCE(assertion, instance) static CompileAssert<(assertion)> CRYPTOPP_ASSERT_JOIN(cryptopp_assert_, instance)
^
/usr/include/cryptopp/misc.h:54:44: note: in expansion of macro ‘CRYPTOPP_COMPILE_ASSERT_INSTANCE’
#define CRYPTOPP_COMPILE_ASSERT(assertion) CRYPTOPP_COMPILE_ASSERT_INSTANCE(assertion, LINE)
^
/usr/include/cryptopp/algparam.h:26:9: note: in expansion of macro ‘CRYPTOPP_COMPILE_ASSERT’ CRYPTOPP_COMPILE_ASSERT(sizeof(CPP_TYPENAME T::value_type) == 1);
^
In file included from /usr/include/cryptopp/modes.h:12:0,
from sdk/megacrypto.h:25,
from src/megacli.cpp:57:
/usr/include/cryptopp/algparam.h: In instantiation of ‘void CryptoPP::AlgorithmParametersTemplate::MoveInto(void_) const [with T = CryptoPP::RandomNumberGenerator_]’:
src/megacli.cpp:2366:1: required from here
/usr/include/cryptopp/algparam.h:322:35: warning: unused variable ‘p’ [-Wunused-variable]
AlgorithmParametersTemplate_ p = new(buffer) AlgorithmParametersTemplate(this);
^
src/megacli.cpp: At global scope:
src/megacli.cpp:928:6: warning: ‘void process_line(char
)’ defined but not used [-Wunused-function]
void process_line(char* line)
^
src/megacli.cpp:839:20: warning: ‘const char* get_prompt()’ defined but not used [-Wunused-function]
static const char* get_prompt(void)
^
In file included from /usr/include/cryptopp/secblock.h:7:0,
from /usr/include/cryptopp/modes.h:8,
from sdk/megacrypto.h:25,
from src/megacli.cpp:57:
/usr/include/cryptopp/misc.h:548:20: warning: ‘std::string CryptoPP::StringNarrow(const wchar_t_, bool)’ defined but not used [-Wunused-function]
static std::string StringNarrow(const wchar_t *str, bool throwOnError = true)
^
make: *_* [src/megacli.o] Error 1

ceil not found, won't compile

This won't compile on my machine since it can't find the declaration of ceil. This is fixed by adding #include <math.h> in file_cache_row.cpp

Can't copy empty files

I tryied to create an empty file (with touch) and Megafuse fails in this way:

searching node by path: /backup_web1/test/pluto
file pluto not found in MEGA
creato il file /tmp/mega.X33ZlP
searching node by path: /backup_web1/test/pluto
file pluto not found in MEGA
UPLOAD TD 0: Update: 0 KB of 0 KB, 0 KB/supload riuscito
searching node by path: /backup_web1/test
node found in MEGA: /backup_web1/test
ulhandle 0, nodehandle 7f22aed1cf38
API request failed, retrying in 100 ms - Use 'retry' to retry immediately...
API request failed, retrying in 200 ms - Use 'retry' to retry immediately...
API request failed, retrying in 400 ms - Use 'retry' to retry immediately...
API request failed, retrying in 800 ms - Use 'retry' to retry immediately...
API request failed, retrying in 1600 ms - Use 'retry' to retry immediately...
API request failed, retrying in 3200 ms - Use 'retry' to retry immediately...
API request failed, retrying in 6400 ms - Use 'retry' to retry immediately...
API request failed, retrying in 12800 ms - Use 'retry' to retry immediately...
API request failed, retrying in 25600 ms - Use 'retry' to retry immediately...
API request failed, retrying in 51200 ms - Use 'retry' to retry immediately...
API request failed, retrying in 102400 ms - Use 'retry' to retry immediately...
...

From this point MegaFuse is stuck and I can only kill it to recover.
In case Mega API does not support empty file upload, I would suggest to avoid to copy it and return a message in the stdout.

File download causes std::out_of_range

This may be two issues, or one issue creating a second issue.

  1. MegaFuse ends unexpectedly when downloading file
  2. Cannot umount MegaFuse with same user account used to create mount (this may be permission related and not a MegaFuse issue.. )

This is under an apache setup. The mount is created in a user virtual root with limited privileges.

Steps to replicate:

megafuse.conf is in the home folder of the user.

/home/user/public_html/megafuse.conf

Login via ssh to user shell

/home/user/public_html/MegaFuse -f -o allow_other -o gid=1004 -o uid=1004

Request file in /home/user/public_html/megafs1/ with browser from http://www.myhost.com/megafs/13562166.jpg

The image is loaded and displayed in the browser but all subsequent requests are forbidden. The endpoint appears lost.

Console output:

creato il file /tmp/filesOUV4Z
opend: aspetto il risultato per il file /13562166.jpg
topen riuscito
tmpfile creato con 1 blocchi
file: /13562166.jpg ora in stato DOWNLOADING
open[0] flags: 0x88000 /13562166.jpg
unique: 16, success, outsize: 32
unique: 17, opcode: READ (15), nodeid: 5, insize: 80, pid: 4070
read[0] 65536 bytes from 0 flags: 0x88000
read richiesto, offset 0, size 0
apro cache: /tmp/filesOUV4Z
mi metto in attesa di ricevere i dati necessari
lock acquisito,
0: Update: 33 KB of 60 KB, 13 KB/s
scaricato fino al byte 34752 di: 61887
0: Update: 41 KB of 60 KB, 11 KB/s
scaricato fino al byte 41992 di: 61887
blocco 0 salvato
wait conclusa
-----offset richiesto: 0, offset della cache: 0,status 0,availablebytes 1
read[0] 61887 bytes from 0
unique: 17, success, outsize: 61903
unique: 18, opcode: FLUSH (25), nodeid: 5, insize: 64, pid: 4070
unique: 18, error: -38 (Function not implemented), outsize: 16
unique: 19, opcode: RELEASE (18), nodeid: 5, insize: 64, pid: 0
release[0] flags: 0x88000
terminate called after throwing an instance of 'std::out_of_range'
what(): vector::_M_range_check
Aborted

Console output of larger file:

unique: 45, opcode: READ (15), nodeid: 2, insize: 80, pid: 2844
read[0] 131072 bytes from 3932160 flags: 0x88000
read richiesto, offset 3932160, size 0
apro cache: /tmp/fileLOR5bw
-----offset richiesto: 3932160, offset della cache: 0,status 0,availablebytes 1
read[0] 131072 bytes from 3932160
unique: 45, success, outsize: 131088
unique: 46, opcode: READ (15), nodeid: 2, insize: 80, pid: 2844
read[0] 131072 bytes from 4063232 flags: 0x88000
read richiesto, offset 4063232, size 0
blocco 92 salvato
blocco 93 salvato
blocco 94 salvato
blocco 95 salvato
blocco 96 salvato
blocco 97 salvato
blocco 98 salvato
blocco 99 salvato
terminate called after throwing an instance of 'std::out_of_range'
what(): vector::_M_range_check
Aborted
$

Trying to remount using MegaFuse gives.

./MegaFuse -f -o allow_other -o gid=1004 -o uid=1004

fuse: bad mount point `./megafs1': Transport endpoint is not connected
terminate called without an active exception
Aborted

After cleaning the temp, cannot remount.

rm -rf ~/.megaclient
umount ./megafs

./MegaFuse -f -o allow_other -o gid=1004 -o uid=1004

fuse: bad mount point `./megafs1': Transport endpoint is not connected
terminate called without an active exception
Aborted

Temporary solution to umount:
Login with root account and use umount with full path

umount /home/user/public_html/megafs1

Then the user can remount using

./MegaFuse -f -o allow_other -o gid=1004 -o uid=1004

This remount again works for the first file then the endpoint appears to be lost.

Hide password in conf file

Hi, I am using your application on Lubuntu 12.04 and works perfectly. I would like to make a request, which is to encrypt or encode user data and password that are stored in the .conf file to start the application. I think it would be a contribution to the privacy of our own account. Thanks and great job!

Limit on Cache Size

Is there a way I can limit the cache size?

One of the primary reasons of using mount over sync is because my device lacks space. Cache is a good way, but space needs to be recycled.

MegaFuse hangs

Hi,

I copy with cp or rsync encfs stuff to mega. After a while hangs MegaFuse and nothing works. MegaFuse stops with this output:

download complete

file: /encfs_1/NoPWHHBeetddaYHReqpYE6TS/okbPu9LzGsGd,-jfJumOlO4-/52z3RGPNQsgUoWFmz7LQaCyH/WcdJpbufcvMf3-K3DuiD6Fjw/iEfD-1i6wc6HBHg7f0WOdf-e/3Swsvp4lCwGJHdsJcEV,L,iZ ora in stato DOWNLOADING
flags:200
searching node by path: /encfs_1/NoPWHHBeetddaYHReqpYE6TS/okbPu9LzGsGd,-jfJumOlO4-/52z3RGPNQsgUoWFmz7LQaCyH/WcdJpbufcvMf3-K3DuiD6Fjw/iEfD-1i6wc6HBHg7f0WOdf-e/3Swsvp4lCwGJHdsJcEV,L,iZ
node found in MEGA: /encfs_1/NoPWHHBeetddaYHReqpYE6TS/okbPu9LzGsGd,-jfJumOlO4-/52z3RGPNQsgUoWFmz7LQaCyH/WcdJpbufcvMf3-K3DuiD6Fjw/iEfD-1i6wc6HBHg7f0WOdf-e/3Swsvp4lCwGJHdsJcEV,L,iZ
fuse: bad error value: 1598290432
searching node by path: /encfs_1/NoPWHHBeetddaYHReqpYE6TS/okbPu9LzGsGd,-jfJumOlO4-/52z3RGPNQsgUoWFmz7LQaCyH/WcdJpbufcvMf3-K3DuiD6Fjw/iEfD-1i6wc6HBHg7f0WOdf-e/3Swsvp4lCwGJHdsJcEV,L,iZ
node found in MEGA: /encfs_1/NoPWHHBeetddaYHReqpYE6TS/okbPu9LzGsGd,-jfJumOlO4-/52z3RGPNQsgUoWFmz7LQaCyH/WcdJpbufcvMf3-K3DuiD6Fjw/iEfD-1i6wc6HBHg7f0WOdf-e/3Swsvp4lCwGJHdsJcEV,L,iZ
upload fallito

What could it be?

compilation keeps terminating

This is what happens when I do the make command. I end up with src/MegaFuse.cpp:15:20: fatal error: db_cxx.h: No such file or directory. Do you know why this would happen?

$ make
g++ -I inc -I /usr/include/cryptopp -I sdk -std=c++0x -O0 -g -fstack-protector-all -Wall -D_FILE_OFFSET_BITS=64 -I/usr/include/fuse -D_GLIBCXX_DEBUG -c src/MegaFuseApp.cpp -o src/MegaFuseApp.o
src/MegaFuseApp.cpp: In member function ‘virtual void MegaFuseApp::nodes_updated(Node*, int)’:
src/MegaFuseApp.cpp:66:60: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 2 has type ‘handle {aka long long unsigned int}’ [-Wformat=]
printf("file uploaded nodehandle %lx\n",n[i]->nodehandle);
^
src/MegaFuseApp.cpp:75:64: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 2 has type ‘handle {aka long long unsigned int}’ [-Wformat=]
printf("file overwritten. nodehandle %lx\n",n[i]->nodehandle);
^
src/MegaFuseApp.cpp: In member function ‘virtual void MegaFuseApp::transfer_complete(int, handle, const byte
, const byte_, SymmCipher_)’:
src/MegaFuseApp.cpp:241:70: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 2 has type ‘handle {aka long long unsigned int}’ [-Wformat=]
printf("ulhandle %lx, nodehandle %lx\n",ulhandle,newnode->nodehandle);
^
src/MegaFuseApp.cpp:241:70: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘handle {aka long long unsigned int}’ [-Wformat=]
src/MegaFuseApp.cpp: In member function ‘virtual void MegaFuseApp::transfer_update(int, m_off_t, m_off_t, dstime)’:
src/MegaFuseApp.cpp:363:46: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
} else if(endChunk > startChunk && endChunk < it->second.availableChunks.size() && it->second.availableChunks[endChunk]) {
^
In file included from /usr/include/cryptopp/secblock.h:7:0,
from /usr/include/cryptopp/modes.h:8,
from sdk/megacrypto.h:25,
from src/MegaFuseApp.cpp:7:
/usr/include/cryptopp/algparam.h: In instantiation of ‘CryptoPP::ConstByteArrayParameter::ConstByteArrayParameter(const T&, bool) [with T = std::basic_string]’:
/usr/include/cryptopp/filters.h:793:132: required from here
/usr/include/cryptopp/misc.h:59:118: warning: unused variable ‘cryptopp_assert_26’ [-Wunused-variable]
#define CRYPTOPP_COMPILE_ASSERT_INSTANCE(assertion, instance) static CompileAssert<(assertion)> CRYPTOPP_ASSERT_JOIN(cryptopp_assert_, instance)
^
/usr/include/cryptopp/misc.h:62:39: note: in definition of macro ‘CRYPTOPP_DO_ASSERT_JOIN’
#define CRYPTOPP_DO_ASSERT_JOIN(X, Y) X##Y
^
/usr/include/cryptopp/misc.h:59:97: note: in expansion of macro ‘CRYPTOPP_ASSERT_JOIN’
#define CRYPTOPP_COMPILE_ASSERT_INSTANCE(assertion, instance) static CompileAssert<(assertion)> CRYPTOPP_ASSERT_JOIN(cryptopp_assert_, instance)
^
/usr/include/cryptopp/misc.h:55:44: note: in expansion of macro ‘CRYPTOPP_COMPILE_ASSERT_INSTANCE’
#define CRYPTOPP_COMPILE_ASSERT(assertion) CRYPTOPP_COMPILE_ASSERT_INSTANCE(assertion, LINE)
^
/usr/include/cryptopp/algparam.h:26:9: note: in expansion of macro ‘CRYPTOPP_COMPILE_ASSERT’
CRYPTOPP_COMPILE_ASSERT(sizeof(CPP_TYPENAME T::value_type) == 1);
^
In file included from /usr/include/cryptopp/modes.h:12:0,
from sdk/megacrypto.h:25,
from src/MegaFuseApp.cpp:7:
/usr/include/cryptopp/algparam.h: In instantiation of ‘void CryptoPP::AlgorithmParametersTemplate::MoveInto(void_) const [with T = CryptoPP::RandomNumberGenerator_]’:
src/MegaFuseApp.cpp:380:1: required from here
/usr/include/cryptopp/algparam.h:322:35: warning: unused variable ‘p’ [-Wunused-variable]
AlgorithmParametersTemplate* p = new(buffer) AlgorithmParametersTemplate(this);
^
In file included from /usr/include/cryptopp/secblock.h:7:0,
from /usr/include/cryptopp/modes.h:8,
from sdk/megacrypto.h:25,
from src/MegaFuseApp.cpp:7:
/usr/include/cryptopp/misc.h: At global scope:
/usr/include/cryptopp/misc.h:549:20: warning: ‘std::string CryptoPP::StringNarrow(const wchar_t
, bool)’ defined but not used [-Wunused-function]
static std::string StringNarrow(const wchar_t str, bool throwOnError = true)
^
g++ -I inc -I /usr/include/cryptopp -I sdk -std=c++0x -O0 -g -fstack-protector-all -Wall -D_FILE_OFFSET_BITS=64 -I/usr/include/fuse -D_GLIBCXX_DEBUG -c src/file_cache_row.cpp -o src/file_cache_row.o
In file included from /usr/include/cryptopp/secblock.h:7:0,
from /usr/include/cryptopp/modes.h:8,
from sdk/megacrypto.h:25,
from sdk/megaclient.h:23,
from src/file_cache_row.cpp:10:
/usr/include/cryptopp/algparam.h: In instantiation of ‘CryptoPP::ConstByteArrayParameter::ConstByteArrayParameter(const T&, bool) [with T = std::basic_string]’:
/usr/include/cryptopp/filters.h:793:132: required from here
/usr/include/cryptopp/misc.h:59:118: warning: unused variable ‘cryptopp_assert_26’ [-Wunused-variable]
#define CRYPTOPP_COMPILE_ASSERT_INSTANCE(assertion, instance) static CompileAssert<(assertion)> CRYPTOPP_ASSERT_JOIN(cryptopp_assert
, instance)
^
/usr/include/cryptopp/misc.h:62:39: note: in definition of macro ‘CRYPTOPP_DO_ASSERT_JOIN’
#define CRYPTOPP_DO_ASSERT_JOIN(X, Y) X##Y
^
/usr/include/cryptopp/misc.h:59:97: note: in expansion of macro ‘CRYPTOPP_ASSERT_JOIN’
#define CRYPTOPP_COMPILE_ASSERT_INSTANCE(assertion, instance) static CompileAssert<(assertion)> CRYPTOPP_ASSERT_JOIN(cryptopp_assert_, instance)
^
/usr/include/cryptopp/misc.h:55:44: note: in expansion of macro ‘CRYPTOPP_COMPILE_ASSERT_INSTANCE’
#define CRYPTOPP_COMPILE_ASSERT(assertion) CRYPTOPP_COMPILE_ASSERT_INSTANCE(assertion, LINE)
^
/usr/include/cryptopp/algparam.h:26:9: note: in expansion of macro ‘CRYPTOPP_COMPILE_ASSERT’
CRYPTOPP_COMPILE_ASSERT(sizeof(CPP_TYPENAME T::value_type) == 1);
^
In file included from /usr/include/cryptopp/modes.h:12:0,
from sdk/megacrypto.h:25,
from sdk/megaclient.h:23,
from src/file_cache_row.cpp:10:
/usr/include/cryptopp/algparam.h: In instantiation of ‘void CryptoPP::AlgorithmParametersTemplate::MoveInto(void_) const [with T = CryptoPP::RandomNumberGenerator_]’:
src/file_cache_row.cpp:155:1: required from here
/usr/include/cryptopp/algparam.h:322:35: warning: unused variable ‘p’ [-Wunused-variable]
AlgorithmParametersTemplate_ p = new(buffer) AlgorithmParametersTemplate(this);
^
In file included from /usr/include/cryptopp/secblock.h:7:0,
from /usr/include/cryptopp/modes.h:8,
from sdk/megacrypto.h:25,
from sdk/megaclient.h:23,
from src/file_cache_row.cpp:10:
/usr/include/cryptopp/misc.h:549:20: warning: ‘std::string CryptoPP::StringNarrow(const wchar_t
, bool)’ defined but not used [-Wunused-function]
static std::string StringNarrow(const wchar_t str, bool throwOnError = true)
^
g++ -I inc -I /usr/include/cryptopp -I sdk -std=c++0x -O0 -g -fstack-protector-all -Wall -D_FILE_OFFSET_BITS=64 -I/usr/include/fuse -D_GLIBCXX_DEBUG -c src/EventsHandler.cpp -o src/EventsHandler.o
g++ -I inc -I /usr/include/cryptopp -I sdk -std=c++0x -O0 -g -fstack-protector-all -Wall -D_FILE_OFFSET_BITS=64 -I/usr/include/fuse -D_GLIBCXX_DEBUG -c src/MegaFuse.cpp -o src/MegaFuse.o
src/MegaFuse.cpp:15:20: fatal error: db_cxx.h: No such file or directory
#include <db_cxx.h>
^
compilation terminated.
Makefile:43: recipe for target 'src/MegaFuse.o' failed
make: *
* [src/MegaFuse.o] Error 1

MegaFuse fstab

Hi,

I tried to use MegaFuse in fstab. If I move the MegaFuse process in background "> /dev/null 2>&1 &", the cpu usage is high.

.mega_wrapper_1.sh:

!/bin/sh

KEYFILE=/home/pi/scripte/.megafuse.conf
/usr/local/bin/MegaFuse -c $KEYFILE -f -o allow_other -o uid=1000 > /dev/null 2>&1 &

fstab:

/home/pi/scripte/.mega_wrapper_1.sh /home/pi/megafs fuse default 0 0

Is there an solution?

MegaFuse doesn't work with megafuse.conf anymore

When I make use of the included conf it doesn't work, the following is my terminal output of the error. I edited out my personal info. Also I noticed the output is in another language (is that Italian?) maybe it's something to do with the PKGBUILD from the AUR package I used to install MegaFuse? AUR link here https://aur.archlinux.org/packages/megafuse/

Everything appears to work fine if I don't use a config file and manually enter my email and password except I noticed that MegaFuse doesn't ask for a APPKEY in manual mode, why?

[lance@Arch-Chromebook ~]$ MegaFuse -c /usr/share/MegaFuse/megafuse.conf -f -o rw
ss /usr/share/MegaFuse/megafuse.conf
caricata la variabile USERNAME con il valore [E-Mail]
caricata la variabile PASSWORD con il valore [mySpecialPass]
caricata la variabile APPKEY con il valore [mySecretKey]
caricata la variabile MOUNTPOINT con il valore /media/mega
login failed. exiting...
[lance@Arch-Chromebook ~]$

Exception running megafuse

terminate called after throwing an instance of 'std::logic_error'
  what():  basic_string::_S_construct null not valid

My upstartjob:

description "MegaFuse"
author      "Marcos Junior"

start on (local-filesystems and net-device-up IFACE!=lo)
stop on runlevel [!2345]

respawn

pre-start script
        test -x /usr/bin/MegaFuse || exit 0
end script

exec /usr/bin/MegaFuse -c /etc/megafuse.conf -f -o allow_other -o uid=1000 >/var/log/mega.log 2>/var/log/mega.err.log

Plex Media Server can't reade content

Dear developer,
I have mounted my mega account using your tools in a directory called. /media/mega
when I go to the directory and run command LS i can see the contents of the mega account
but when I select the folder /media/mega as a media folder using the application plex.

Plex can't see the contents or scann the media files for metadata. And therefore I can't even stream files. Because they are not visible via Plex. Perhaps I could use some other mounting paramenter that could make this possible.

Yours friendly,

Cihat Kaya

Cannot Make Megafuse "collect2: error: ld returned 1 exit status"

Have a problem with build MegaFuse
Linux 3.2.0-4-686-pae #1 SMP Debian 3.2.32-1 i686 GNU/Linux
Debian GNU/Linux 6.0 \n \l

#|--> make
g++ -std=c++0x -O0 -g -fstack-protector-all -Wall  -D_FILE_OFFSET_BITS=64 -I/usr/include/fuse -D_GLIBCXX_DEBUG  -o MegaFuse src/MegaFuseApp.o src/file_cache_row.o src/EventsHandler.o src/MegaFuse.o src/megafusemodel.o src/megaposix.o src/Config.o src/fuseImpl.o src/megacli.o src/Logger.o sdk/megabdb.o sdk/megaclient.o sdk/megacrypto.o -lcryptopp -lfreeimage -ldb_cxx -lcurl -lfuse -pthread
sdk/megacrypto.o:(.rodata._ZTVN8CryptoPP20AutoSeededRandomPoolE[_ZTVN8CryptoPP20AutoSeededRandomPoolE]+0x30): undefined reference to `CryptoPP::RandomPool::GenerateIntoBufferedTransformation(CryptoPP::BufferedTransformation&, std::string const&, unsigned long long)'
collect2: error: ld returned 1 exit status
Makefile:40: recipe for target 'MegaFuse' failed
make: *** [MegaFuse] Error 1

`du` command not working

# du -hs megamount/
0    megamount/
# (find megamount/ -type f -printf '%s+'; echo 0) | bc -lq
835159896

It seems that du does not use the same API that find is using, and it fails.

undefined reference to symbol 'clock_gettime@@GLIBC_2.4'

Compiling this for a Raspberry Pi Model B. Received this error:

/usr/bin/ld: src/megaposix.o: undefined reference to symbol 'clock_gettime@@GLIBC_2.4'
//lib/arm-linux-gnueabihf/librt.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
Makefile:40: recipe for target 'MegaFuse' failed
make: *** [MegaFuse] Error 1

Might be a Raspberry Pi thing.

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.