Enable webdav

Hi,

Has anyone successfully able to enable webdav on mycloud? The idea is to be able to access all the data under a share via webdav.

No one?

WDMyCloud already has WebDav via Apache2 modules for w2go.com logins. What are you trying to accomplish? 

Hi Nazar,

I was hoping to hear from you. You have been a great help on this forum in the past


Im’ trying to be able to access the wd cloud shares via webdav, (not using wd wd2go app etc
) 

I have apps on IOS and primarily on Android that i would like ot connec to the wd drive via webdav and then sync some folders with my phone.

Now, while i can do this over sftp, i was testing with webdav setup on m PC and have found out that with webdav i get over 10X the speed when using webdav vs sftp. So im trying to do that.

I tried following several guides for the mybook live, but as you said it does look like that webdav is already enabled on the wd cloud. but i havent figured out how to map a drive to it using that
 information on the web seems to sugges something like:  https://_ip_address_of_wdcloud/share_name    _or https://ip_address_of_wdcloud:443/share_name  etc

Oh I see. Even though WebDav is available on the cloud, it has been customized to work with WDMyCloud’s framework. You can view the settings here, /etc/nas/apache2/auth. And you can test them out with the followings:

  1. http(s)://Your_External_IP:Port/Share_name_with_trailing_underscore/Full_path_to_your_stuffs.
  • Your_External_IP = Your ISP provided IP, Google “What is my IP”.
  • Port = The forwarded port in your router, isn’t always 80/443. Can check from WD Dashboard settings when you choose manual ports.
  • Share_name_with_trailing_underscore = Share name + “_” eg. /Public_/ or /Documents_/.
  • Full_path_to_your_stuffs = Absolute path needed else you’ll need to edit Apache2’s settings to enable directory listing.
  1. Username and password to login where username is a unique 11 digits preassigned to your username eg. “12345678” and password is your original password in 32 digits MD5 hash format eg. “d8e8fca2dc0f896fd7cb4cb0031ba249”. Use sqlite3 to read them from /usr/local/nas/orion/orion.db.

IIRC the WD Dashboard will ovewrite the WebDav settings above when you made changes from the webUI, so it’s best to create a new set of settings eg. /etc/apache2/conf.d/my_new_webdav.conf. Also with a new setting, you don’t have to follow WD’s paths/username/password convention. Then do a reload, “service apache2 reload”.

WebDav is definitely faster than sftp/ssh/scp due to less encryption overhead but it has a 4GB size limitations and it needs to be configured and Apache2 reloaded everytime you have new changes. While you wanna avoid FTP even though it is fast due to security reasons, you might wanna try FTPS which can be easily enabled from the existing vsftpd config /etc/vsftpd.conf. FTPS is way faster than SFTP in terms of transfer speed (FTP>FTPS>SFTP).

2 Likes

Awesome. Thank you for the explaining that in such detail. I’ll give it shot.

When you said, apache needs to be reloaded every time there are new changes, you mean to the config, or when i add new files to my shares, i need to reload apache to publish those?

yeh,so i cant get it to work at all


do any of the steps from mybook live apply from:  http://mybookworld.wikidot.com/forum/t-338804/another-webdav-tutorial

i know that on the wd cloud webdav is already enabled


Yes I meant reload Apache2 everytime changes are made to the config file.

Actually need not fully follow the mybook guide except if you want to create another custom WebDav path via a new config include file. If you try to test from my previous post in the browser, you should get a credential prompt. Maybe your port forward got issues or some other (from your another post where you can’t access from mobile app)? To isolate this, use your nas internal ip instead or just “http://wdmycloud/ShareName\_”.

Thanks Nazar.

Well i do get a login prompt using my external IP. However i cannot login using the login info i pulled form the “htgroup” and htpasswd" files. For this test i was trying to open a jpeg file using its full path in the webdat URL, didnt work. It does not even open the picture using the internal IP and in that case there is no login prompt also. The login prompt is only when i try to access via the external IP.

My port forwarding is ok.

Strange I do get the login prompt using internal ip eg. http://wdmycloud/Public\_ and this is done on the stock unmodified  Apache2 I just reflashed yesterday to the latest v4.

The passwords in the htpasswd file is already MD5 hashed so you can’t use them to login. To get a working user and password, use sqlite3 to view the db file /usr/local/nas/orion/orion.db. See screenshot below, after executing the sql query, the 1st column (device_user_id) is the username and 3rd column (auth) is the password that you need.

@Nazar
Any pointers that I should keep in mind so that I don’t end up bricking my drive while trying set up WebDAV for one of my shares and enable directory listing.
From another thread where you explained how to host a second site on the drive, do I also need to make sure to keep original Apache config in my new config file?
I would also like to use my own username password and not the hashed password from wd.
I’m still on Fw 3.x
Thanks.

You’re still on v3, so you have the flexibility to use apt-get. Why not run owncloud7? There you can run it’s internal webDav.

@Nazar

So i was successfully able to setup webdav on a mybook live using the following steps

MyBookLive: ~ # a2enmod autoindex
MyBookLive: ~ # /etc/init.d/apache2 restart

Create file “wdnas5080” in /etc/apache2/sites-availible with

<VirtualHost *:5080>
ServerAdmin webmaster@localhost

DocumentRoot /shares

Options FollowSymLinks AllowOverride None

Alias ​​/webdav /shares

<Location /webdav/>

Dav On
Options Indexes
Order Deny,Allow
Deny from all
Allow from all
AuthName DeviceUser
AuthType Digest
AuthDigestDomain /webdav
AuthDigestProvider file
AuthUserFile /etc/nas/apache2/auth/htpasswd
AuthGroupFile /etc/nas/apache2/auth/htgroup
Require valid-user

Create the same file but name it “000-wdnas5080” in /etc/apache2/sites-enabled

Add Litsten 0.0.0.0:5080 to ports.conf

MyBookLive :confused: etc/apache2 # a2ensite wdnas5080
MyBookLive :confused: etc/apache2 # /etc/init.d/apache2 reload

However when i try to use them on a mybook cloud it doesnt seem to work.

So i found that the WD cloud like the site config file with a .conf extension. So i created the following:

etc/apache2/sites-available/wdnas5080.conf

/etc/apache2/sites-enabled/000-wdnas5080 → /etc/apache2/sites-available/wdnas5080

Added “listen 0.0.0.0:5080” in ports.conf

Then:

nas1:/etc/apache2/sites-available# a2ensite wdnas5080
Enabling site wdnas5080.

But when i try to reload apache, i get:

nas1:/etc/apache2/sites-enabled# service apache2 reload
22389 (process ID) old priority 0, new priority 0
AH00526: Syntax error on line 1 of /etc/apache2/sites-enabled/wdnas5080.conf:
cannot occur within section
Action ‘configtest’ failed.
The Apache error log may have more information.
failed!

Any ideas
i would appreciate the help

Thanks

Below should fix your issue. It’s due to existing WD’s config.

  1. Disable your new site config thus removing the symlink, run:

    a2dissite wdnas5080;

  2. Move your config to the conf.d path, run:

    mv /etc/apache2/sites-available/wdnas5080.conf /etc/apache2/conf.d/;

  3. Restart the daemon (required due new listening port 5080), run:

    service apache2 restart;

  4. Access the new webdab, browse:

    http://wdmycloud:5080/webdav/

Enjoy
:stuck_out_tongue:

Thank you Nazar.

That fixed it. So essestianlly on the WD cloud, the only thing i needed to do was to 

1- put a new config file for the new site(webdav) in  /etc/apache2/conf.d/

2- add the listening port in ports.con

3- add a user to for webdav by running:

          htdigest /etc/nas/apache2/auth/htpasswd ‘DeviceUser’ my_webdav_username

where “my_webdav_username” is the same user i use to login to the WD gui dahsboard.

No problem, actually you can skip #2 and add the new listening port at the beginning of your new wdnas5080.conf file.

@Nazar78

In the past you had mentioned that Webdav has a file size limit of just under 4GB.

Is that for a single file transfer or for a total file size upload from the webdav server to a client?

What about folder upload that contains multiple files that total over 4gb ?

 Or is that limit only for a transfer from Windows to a webdav server?

It’s a limit for a single file post/request. Doesn’t affect multiple or chunked post/request.

Hi Nazar78,

Can you explain to me how i can read the login credentials for WebDAV Access?

@Oggel

You can view them in the Sqlite DB:

nazar@TeaNazaR:~# sqlite3 /usr/local/nas/orion/orion.db;sqlite> .header onsqlite> select username as ID, device_user_id as USER, auth as PASS from DeviceUsers;

Login to “http://wdmycloud/Public\_/relative-path-to-your-file” with USER and PASS.

See post #10 on this thread for the screenshot.