logo

Managing Domino File Resources Using WebDAV [ROUGH CUT]

Lotus Domino provides us a convenient way of centrally storing all the files that make up a website - the NSF file. For most websites this is great. For a website where you need to include lots of files it can become a pain. 

Problem

When using methods like this folder structure is needed it becomes a nightmare. With the prevalance of JavaScript Libraries about at the moment this problem is now come to the fore. Ideally we'd be able to store the many files and folders that make a library in the Domino HTML folder of the server. Realistically this isn't always possible and we need to add all the files to the database design. 

In the past I've found myself importing dozens of files in the NSF and then having to manually rename them all to provide a structured hierarchy. Time-consuming and boring. 

Another problem of adding all the files from a library to is keeping them up to date. When a new version of a library is released, unless you know which files have changed, you'll need to go through the whole process again.

Solution

Using WebDAV we can eliminate all this renaming of resource elements and simple drag-drop copy folders full of files in to our Domino databases.

Assumptions

You're running a Domino server on Windows and have access to setup new DNS entries. You're using Windows XP or other suitable WebDAV client.

Setup

First thing to do is open the server's Address Book. Find your development server's own document and open it up. You need to make sure that Internet Site documents are enabled. As below:

 

We're going to create a new Internet Site document just for use with WebDAV. I'm assuming you're using session-based authentication on your server as is, which WebDAV does not work with. The easiest way to interact in a non-session-based way with the same server is to create a separate website doc that handles a distinct subdomain, such as webdav.dev.company.com or whatever.

So, go to the Configuration\Web\Internet Sites view and create a new one, like below:

 

Notice the subdomain, which we'll setup in our DNS later. Now go to the Configuration tab and make sure WebDAV is enabled down at the bottom, as below:

 

Then, on the Domino Web Engine tab make sure that session-based authentication is disabled:

At this point you'll probably want to restart (refresh?) the HTTP task, if not the whole server. All we need to do now is setup the DNS. How you do this depends on your environment. I'm in charge of my own little LAN and so can do it in one of two ways. The preffered option is to logon to my DNS server and add a new A Host record. If you work in a corporate environment you might need to get your sysadmins to do this. 

The easiest way to add a new DNS entry for your Windows PC is to add a line to the text file found at Windows\System32\drivers\etc\hosts. Open this file in a text editor and add a line in the format: IP Address space FQDN e.g. 192.168.0.10 webdav.rockalldesign.com.

 

Open a browser and try the address. It should take you to the Domino server. Try and access a secured database and you should see an old-fashioned login prompt appear. If so, all is well. If not, start over.

Using WebDAV

WebDAV is supported by a variety of clients. For now we're only interested in using Windows Explorer to transfer folders and files in to our Domino databases.

 

First thi ng to do is allow access to the database we want to work with. Open the A CL's advanced tab and make sure the admin server is correct and that max internet access is set to at least Designer:

 

Optionally we can enable design.document locking on this database. Investigate.

Now open Windows Explorer and we'll connect to the database. From the Tools menu select Map Network Drive. From the dialog that appears, press the link to "Sign up for online storage":  

 

You should get to a screen where you can choose the option below:

 

You  will then be asked for the address of the web site, as below:

 

Enter the path in the format:

http://domain.company.com/path/to/db.nsf$files 

Note that I've used the subdomain we setup for WebDAV and non-session-based authentictation. Pressing next will prompt you to login. Use the credentials of a user with DEsigner+ access to the database you're connecting to.

If all works ok you'll be asked to name this new folder and if you want to open it. Both choices are down to you.

Open Windows Explorer again and go to My Network Places. You should see a folder with the name you chose above.

In my case it's a database called yui.nsf. YUI being the Yahoo! User Interface Library. This JavaScript toolkit comprises dozens of files contained within a strict folder structure. Using WebDAV we can import all these files in to Designer and keep the directory hierarchy. To do so, having downloaded the YUI Zip file and extracted to a folder called "yui", simply drag the folder to your new network place folder. Once copying is complete you should be able to open the folder and see all the files, as below:

 

 

Now for the really magic part. Open the database in Domino Designer and go to the File Resources section. You should see all the files correctly imported, as below:

 

And there you have it.

Still needs adding

  • talk about editing images/stylesheets/JS-files directly from the NSF via WebDAV.  

Feedback

  1. brilliant

    Hey Jake, just happened for me to play with external JS resources a couple of days ago, it took me a while to discover to join the database in Explorer as /db.nsf$files.

    I think this is the main trick, rest of it can be summarized as: 1. Remove session authentication. 2. Make use of Internet Sites documents. 3. Make maximum web access to Manager And the MAIN TRICK : join your db in Explorer with $files after the db file name.

    Once you do this on a dev server somewhere, same design elements can be copied/moved into production environment where you might have session/SSO or whatever enabled.

      • avatar
      • Dev
      • Thu 5 Oct 2006

      Re: brilliant

      Really nice Jake, Is possible to upload files as well directly on the server ( instead in a database ) ? thx again. Dev

      Show the rest of this thread

    • avatar
    • Marcos Romero
    • Thu 5 Oct 2006

    Thanks

    I always wondered how to use WebDAV in Domino.

    Thank you very much.

  2. FWIW

    Interesting, I didn't know that...

    Quite off-topic, but your /etc/hosts file can be streamlined. The syntax is: "IP-address hostname hostname", so "192.168.0.10 webdav.rockalldesign.com webdav" (all one one line) would also do the trick ;-)

    BTW, if you need to access your Webdav server from the command-line, I recommend http://www.webdav.org/cadaver/

      • avatar
      • Jake Howlett
      • Thu 5 Oct 2006

      Re: FWIW

      Nice tip. Thanks for that.

      Is there a limit to the number of hostnames you can list on one line?

      Jake

      Show the rest of this thread

    • avatar
    • Giuseppe
    • Thu 5 Oct 2006

    Thanks

    i have not tried yet but this kind of article on domino & webdav was much needed Thank you so much!

    1. Nice Work

      I've been looking at doing this for a while now. Your article saved me a ton of messing around.

  3. Well Done Jake

    Excellent - I never knew that (infact I've been meaning to find out what WebDAV did for Domino!). Great stuff.

    • avatar
    • Stuart
    • Fri 6 Oct 2006

    Fantastic - thankyou

    I wasted a couple of days trying to get Webdav working so that I could import the latest version of TinyMCE into a DB.

    In the end I gave up - thanks for this Jake.

    • avatar
    • Scot
    • Mon 9 Oct 2006

    Great Article

    I like the article. I have an issue with files. I paste the directory over to the web folder and it creates the directory entries in the database but I keep getting the "an error occurred copying some or all of the files". I look in the web log and keep getting a 405, Method Not Allowed.

    Anyone else seen this problem while trying to use WebDAV?

    Thanks

  4. Ran into a problem...

    I can't get this to work correctly:

    I can connect to the nsf and browse all files (and directories)

    I can change existing filenames, but I can't add new files (from Windows Explorer)

    From the log: HTTP Web Server: The HTTP method is not allowed for the specified URL (my url). (status code 405 I think)

    Webdav is enabled in the Internet site document... (and all methods are enabled)

    Anyone that knows anything about this?

      • avatar
      • Jesper Kiaer
      • Thu 12 Oct 2006

      Re: Ran into a problem...

      Hi

      - Remember to restart HTTP task - maybe the URL your are using are actually not using the Internet Site document you have made. Make shure they match

      just some ideas..

      brgds Jesper Kiaer

      http://www.jezzper.com

      • avatar
      • Jesper Kiaer
      • Thu 12 Oct 2006

      Re: design locking

      Just found out, it is because you need to enable design locking on the db properties.

      I got my webdav up and running, but only for anonymous access.

      I can't seem to log in, when access is restricted on the database. I can log in from a browser ..getting the correct prompt.

      brgds Jesper Kiaer

      http://www.jezzper.com

      Show the rest of this thread

  5. Been doing this for years, it's awesome

    My team at SNAPPS has been using Domino WebDAV for several years as a code management solution with Dreamweaver (a WebDAV client). I even did presentations on it in 2003-04 but it did not get the interest level of Domino folks I would have liked to see, given the productivity benefits I've personally seen with my team. We have a server dedicated to WebDAV.

    BTW it just got cooler mwith Domino 7.0.2 - as WebDAV requires basic authentication, and we can now selectively assign URLs to basic authentication while having the rest of the server participate in MSSO.

    • avatar
    • Bill-Hanson
    • Thu 26 Apr 2007

    Read Only

    I've run through this guide, and can now add, delete, rename, and open files remotely. The only problem now is that whenever I open a file in an editor it is read only. Any ideas? I'm using WinXp with PrimalScript.

  6. If you get "The HTTP method is not allowed" i R7

    If you get "The HTTP method is not allowed for the specified URL" then check that the database property 'Allow design locking' is checked and that a Administration server (Master Lock Server) is set in the ACL

    1. Re: If you get

      Sweet :o) - thanks for sharing.

  7. Mime type of attached files?

    I'm about to give this a try (finally), but I'm worried about the file's mime types.

    When I add a file resource manually, smart ass Domino serves JS files as content-type "text/html" and (it get's even better) CSS files as content-type "application/octet-stream". Consequentially, Firefox refuses to use the style sheets. This leaves us with the options to either edit the mime type manually (yeah, that's why we were using WebDAV in the first place) or write an agent that sets the $MimeType item for certain file resources based on the file extension part of the resource name.

    Is this the same when using WebDAV? I'd like to hear it's not, but I don't have much hope.

    1. More or less trouble free

      O.K., I could have tried this prior to posting, but I wasn't sure if I would even get it up and running.

      So, CSS resources are automatically filed under Style Sheets, so the mime type is text/html, which works. JS files are still filed under files and served as text/html as well. Images, PDF files, Office files and so on seem to all get the correct corresponding mime type.

      Show the rest of this thread

  8. Wow..

    just very odd... I got it working I think... disabled my Norton Firewall... I got frustrated and started to manually add the files... then went back to check via the windows explorer. and I could remove the files from the NSF to OS but not OS to NSF... configured Dreamweaver again... and the remote folder got populated, but quicky timed out... Disabled the firewall and it seems to be flowing nicely now...

    thanks for all of your help....

  9. Having problem to setup WebDav on LN 8

    I'm having problem with setting up the WebDav on Lotus Notes 8. I'm able to configure everything like on this web page, but when I try to copy some file to the network place of my database, then I'm alerted with message "An error occurred copying some or all of the selected files". Has anyone got an idea how to get rid of this problem? I'll really appreciate any solution. Tomas

    1. Re: Having problem to setup WebDav on LN 8

      You can deal with this error message by enabling Design Locking.

      Design Locking is not the same as Document Locking. The tab for Design Locking is on the Design Tab of the Database Properties box. That tab is the fourth from the left. Its the one where you specify whether the database is a template.

      cheers

      Dietrich

  10. Wish I knew this the last time I loaded the EXT.

    Fantastic article. I just wish I knew this the last time I loaded the EXT framework into domino. Made life a lot easier for the update I have just done though!

    Just for reference, works OK on Domino 8.5

    • avatar
    • Lukas Diacik
    • Mon 7 Dec 2009

    Nice article, everything works fine in windows. However, I am unable to connect to database using linux (i tried several clients, but no luck). I wonder if this is even possible.

    Lukas

  11. I first used this tutorial on Sun 5 Aug 2007. Just reused it again today to finally get back into ExtJS & Domino 8.5.1 using DreamWeaver CS4... :-)

    Great Article... Stands the test of time... :-)

    • avatar
    • Adam
    • Wed 11 Aug 2010

    just wondering if you ever worked a way to have a domino database without the ".nsf"

    it works in the client and designer, but not in domino....

    -is there a way to set up domino to accept these?

    i am going to try replica id tonight to see if it is possible that way...

    may be adding the database to a catalog somewhere...

    handy to avoid .nsf in urls...

    url substitution seems a bit messy

    -keep my email address private please!!

  12. Thanks for posting this as my memory of how to set this up was not so great. just blogged about it and pointed everyone here.

  13. Goodday,

    I was wondering if this topic is to be updated, while I have suggestion which my be interesting: Lialis Lotus WebDAV is to be released inOctober and will give users the possibility to download, upload and synchronize Lotus Domino databases directly to mobile devices (iPad, iPhone, Blackberry, Android APad, etc.).

    The software will be free for one user, so maybe you want to try it out for yourself: http://www.lialis.com/lotussolutionprovider.nsf/pages/lotuswebdav

    1. To extend my previous post, Lialis Lotus WebDAV is available (free for one user): Download, upload or synchronize attachments stored in IBM Lotus Domino databases directly to your iPad, iPhone or other mobile device or tablet, over the WebDAV HTTP(s) protocol, without using the IBM Lotus Domino web interface.

      http://www.lialis.com/lotussolutionprovider.nsf/pages/lotuswebdav

      Quickr iPad was our first WebDAV solution and is extended with many functionalities throught the time, test yourself with the free software download for one user: http://www.lialis.com/lotussolutionprovider.nsf/pages/quickrwebdav

      While we noticed many people benefit from these solutions, we want to serve all users with any type of Lotus Domino environment. Therefore we are currently developing Connections iPad, to be released in January 2012: http://www.lialis.com/lotussolutionprovider.nsf/pages/connectionsipad

    • avatar
    • Lee McMullen
    • Mon 12 Mar 2012

    FYI, a new .ini variable was introduced in Domino 8.5.3 to restrict the $files behaviour by default. It leads to the following 404 error when accessing the $files url through a browser:

    HTTP Web Server: Item Not Found Exception

    Here are the details:

    http://www-10.lotus.com/ldd/r5fixlist.nsf/Public/1FD2EF70EB0EEB3D8525782D00737635?OpenDocument

    • avatar
    • Lee McMullen
    • Mon 12 Mar 2012

    Please note that for the "DominoEnableNsf$FileCollectionGet" ini variable to take effect, a restart of Domino is required - not just http.

    • avatar
    • xtian
    • Wed 14 Nov 2012

    I am using Domino 8.5.3FP2 and it seems not possible to upload big files through WebDav. More generally speaking, it does not seem possible to import huge files as Domino database resources.

    I get the following error message for files > 300 MB:

    HTTP Web Server: Lotus Notes Exception - Field is too large (32K) or View's column & selection formulas are too large

  14. Jake, still referencing this after all these years ....

Your Comments

Name:
E-mail:
(optional)
Website:
(optional)
Comment:


Navigate other articles in the category "Miscellaneous"

« Previous Article Next Article »
HTML Emails The Easy Way   Faking Action Bars With CSS

About This Article

Author: Jake Howlett
Category: Miscellaneous
Hat Tip: YoGi and Ferdy
Keywords: WebDAV; Resource; Explorer;

Options

Feedback
Print Friendly

Let's Get Social


About This Website

CodeStore is all about web development. Concentrating on Lotus Domino, ASP.NET, Flex, SharePoint and all things internet.

Your host is Jake Howlett who runs his own web development company called Rockall Design and is always on the lookout for new and interesting work to do.

You can find me on Twitter and on Linked In.

Read more about this site »