One document matched: draft-ietf-webdav-quota-01.txt

Differences from draft-ietf-webdav-quota-00.txt



                                                              B. Korver 
                                                                 Xythos 
                                                           L. Dusseault 
                                                                 Xythos 
   Internet Draft                                             C. Warner 
   Document: draft-ietf-webdav-quota-01.txt                     Netezza 
   Expires: September 2003                                   March 2003 
 
 
               Quota and Size Properties for DAV Collections 
 
 
Status of this Memo 
    
   This document is an Internet-Draft and is in full conformance with 
   all provisions of Section 10 of RFC2026. 
    
   Internet-Drafts are working documents of the Internet Engineering 
   Task Force (IETF), its areas, and its working groups.  Note that 
   other groups may also distribute working documents as Internet-
   Drafts. 
    
   Internet-Drafts are draft documents valid for a maximum of six 
   months and may be updated, replaced, or obsoleted by other documents 
   at any time.  It is inappropriate to use Internet-Drafts as 
   reference material or to cite them other than as "work in progress." 
    
   The list of current Internet-Drafts can be accessed at 
        http://www.ietf.org/ietf/1id-abstracts.txt 
    
   The list of Internet-Draft Shadow Directories can be accessed at 
        http://www.ietf.org/shadow.html. 
    
Abstract 
    
   WebDAV servers are frequently deployed with quota (size) 
   limitations.  This Internet-Draft discusses the properties and minor 
   behaviors needed for clients to interoperate with quota 
   implementations on WebDAV repositories.  
 
Table of Contents 
 
   Introduction.......................................................2 
   DAV:quota-limit-bytes..............................................3 
   DAV:quota-used-bytes...............................................3 
   DAV:quota-assigned-bytes...........................................4 
   Example PROPFIND request and response..............................5 
   Error reporting....................................................6 
   Notes..............................................................6 
   Security Considerations............................................7 
   Internationalization Considerations................................7 
   IANA Considerations................................................7 
     
   Dusseault              Expires March 2003                         1 

                     DAV Collection Size and Quota        January 2003 
    
    
   Intellectual Property..............................................7 
   Acknowledgements...................................................8 
   References.........................................................9 
   Author's Addresses.................................................9 
 
Introduction 
    
   Notational Conventions 
    
   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 
   document are to be interpreted as described in RFC 2119 [RFC2119]. 
    
    
   Requirement for quotas 
    
   WebDAV servers based on [RFC2518] have been implemented and deployed 
   with quota restrictions on collections and users, so it makes sense 
   to standardize this functionality to improve user experience and 
   client interoperability.  This specification requires WebDAV because 
   it requires PROPFIND support and relies on the WebDAV definition of 
   collections and properties, including the definitions for live and 
   protected properties. 
    
   The reasons why WebDAV servers frequently have quotas enforced are 
   the same reasons why any storage system comes with quotas.   
    
    - Sometimes the storage service charges according to quota  
    
    - Sometimes the storage service is provided free, but the storage 
   service provider has limited storage space (e.g. www.sharemation.com 
   and university-provided student accounts) 
    
    - Even in cases where the storage can be upgraded, the storage 
   managers may choose to limit quota in order to encourage users to 
   limit the files they store on the system and to clean up obsolete 
   files.  (e.g. IT departments within corporations). 
 
   In order to work best with repositories that support quotas, client 
   software should be able to determine and display the quota-limit on 
   collections.  Further, client software should have some way of 
   fairly reliably determining how much storage space is already 
   counted towards that quota. 
    
   In addition to displaying the quota-limit and quota-used on 
   collections, this specification does not forbid these properties on 
   any resource. 
    
   Solution Overview 
    
   The approach to meeting the requirements and scenarios outlined 
   above is to define three live properties.  This specification can be 
     
   Korver                  Expires Jul 2003                          2 

                    DAV Collection Size and Quota        January 2003 
    
    
   met on a server by implementing both quota-limit and quota-used on 
   collections only.  Implementing both quota-limit and quota-used on 
   all resources is recommended. 
    
   None of these properties need be returned in a <DAV:allprop> request 
   though the server may include them.  However, these property names 
   MUST be returned in a <DAV:propname> request for a resource that 
   supports the properties, except in the case of infinite limits which 
   are explained below.  
    
   The definitions below for quota-limit and quota-used borrow heavily 
   from the definition of quota in the NFS [RFC3010] specification. 
 
DAV:quota-limit-bytes 
    
   Name: quota-limit-bytes 
   Namespace: DAV: 
   Purpose: Indicates the total amount of storage potentially 
   allocated. 
   DTD: <!ELEMENT quota-limit-bytes (#PCDATA) > 
    
   The DAV:quota-limit-bytes property value is the total amount of 
   storage space potentially allocated to this file or directory, 
   measured in octets. 
    
   Support for this property is REQUIRED on collections, and OPTIONAL 
   on other resources.  A server SHOULD implement this property for 
   each resource that has the DAV:quota-used-bytes property. 
    
   A value of 0 indicates that storage is limited to 0.  Users will 
   probably not be able to perform operations that write additional 
   information (e.g. a PUT inside a collection), but may be able to 
   replace through overwrite an existing resource of equal size. 
    
   If a resource has no quota enforced or unlimited storage, the server 
   MAY choose not to return this property (404 Not Found response in 
   Multi-Status), although this specification RECOMMENDS that servers 
   return some appropriate value (e.g. the amount of free disc space).  
   A client cannot entirely assume that there is no quota enforced on a 
   resource that does not have this property, but might as well act as 
   if there is no quota. 
    
   The value of this property is protected.  A 403 Forbidden response 
   is RECOMMENDED for attempts to write a protected property. 
 
DAV:quota-used-bytes 
    
   Name: quota-used-bytes 
   Namespace: DAV: 
   Purpose: Contains the amount of storage counted against the quota-
   limit of a resource. 
   DTD: <!ELEMENT quota-used-bytes (#PCDATA) > 
    
     
   Korver                  Expires Jul 2003                          3 

                    DAV Collection Size and Quota        January 2003 
    
    
   The DAV:quota-used-bytes value is the value in octets representing 
   the amount of space used by this file or directory and possibly a 
   number of other similar files or directories, where the set of 
   ôsimilarö meets at least the criterion that allocating space to any 
   file or directory in the set will count against the quota-limit.  It 
   MUST include the total count including usage derived from sub-
   resources if appropriate.  It SHOULD include metadata storage size 
   if metadata storage is counted against the quota-limit.   
    
   Clients SHOULD expect that once the quota-used on a file or 
   directory meets or exceeds the quota-limit, further allocations to 
   that file or directory will be refused.  A resource may show more 
   quota-used than its quota-limit or quota-assigned appears to allow. 
    
   Note that there may be a number of distinct but overlapping sets of 
   files or directories for which a quota-used is maintained (e.g. ôall 
   files with a given ownerö, ôall files with a given group ownerö, 
   etc.).  The server is at liberty to choose any of those sets but 
   SHOULD do so in a repeatable way.  The rule may be configured per 
   repository, or may be ôchoose the set with the smallest quotaö. 
 
   Support for this property is REQUIRED on collections, and OPTIONAL 
   on other resources.  A server SHOULD implement this property for 
   each resource that has the DAV:quota-limit-bytes property. 
    
   Support for this property enhances the client experience, because 
   together with DAV:quota-limit-bytes, the client has a chance of 
   managing its files to avoid running out of allocated storage space.  
   Clients may not be able to calculate the value as accurately on 
   their own, depending on how total space used is calculated by the 
   server. 
 
DAV:quota-assigned-bytes 
    
   Name: quota-assigned-bytes 
   Namespace: DAV: 
   Purpose: Indicates the amount of storage assigned. 
   DTD: <!ELEMENT quota-bytes (#PCDATA) > 
    
   The DAV:quota-assigned-bytes property value is the amount of storage 
   space potentially either assigned to or requested for this file or 
   directory, measured in octets.  
    
   The value of this property will usually be protected, although a 
   user with sufficient privileges may be permitted to change the 
   value.  The property is useful even if it is protected.  A 403 
   Forbidden response is RECOMMENDED for attempts to write a protected 
   property. 
    
   Support for this property is OPTIONAL. 
 
   Note that a resource may show more quota-used than its quota-
   assigned appears to allow, and that quota-assigned MUST NOT be less 
     
   Korver                  Expires Jul 2003                          4 

                    DAV Collection Size and Quota        January 2003 
    
    
   than the quota-limit.  Servers which receive a request to change 
   quota-assigned to a value less than quota-limit MUST reduce quota-
   limit to this value at the same time. 
    
   For many quota systems, quota-assigned is synonymous with quota-
   limit. However, in any system, quota-limit is a hard limit.  For 
   example, imagine a quota system where each collection may have a 
   quota assigned and where a resource contained in a collection is 
   subject to the quota constraints of all parent collections.  Assume 
   the administrator creates a collection A and gives it a quota-
   assigned of 1,000,000 bytes and then creates a sub-collections B 
   which is given quota-assigned of 10,000,000 bytes.  In this case, 
   the quota-limit for B is 1,000,000 bytes.  
    
Example PROPFIND request and response 
    
   Request: 
    
     PROPFIND /~milele/public/ HTTP/1.1 
     Depth: 0 
     Host: www.sharemation.com 
     Content-Type: text/xml 
     Content-Length: xxx 
    
     <?xml version="1.0" ?> 
     <D:propfind xmlns:D="DAV:"> 
     <D:prop><D:quota-limit-bytes><D:quota-used-bytes></D:prop> 
     </D:propfind> 
    
   Response: 
    
     HTTP/1.1 207 Multi-Status 
     Date: Tue, 16 Oct 2001 22:13:39 GMT 
     Content-Length: xxx 
     Content-Type: text/xml; charset=UTF-8 
    
     <?xml version="1.0" encoding="utf-8" ?> 
     <D:multistatus xmlns:D="DAV:"> 
     <D:response> 
       <D:href>http://www.sharemation.com/~milele/public/</D:href> 
       <D:propstat> 
         <D:prop> 
           <D:quota-limit-bytes>1000000</D:quota-limit-bytes> 
           <D:quota-used-bytes>403350</quota-used-bytes> 
         </D:prop> 
         <D:status>HTTP/1.1 200 OK</D:status> 
       </D:propstat> 
     </D:response> 
     </D:multistatus> 
    



     
   Korver                  Expires Jul 2003                          5 

                    DAV Collection Size and Quota        January 2003 
    
    
Error reporting 
    
   WebDAV (RFC2518) defines the status code 507 (Insufficient Storage).  
   This status code SHOULD be used when a client request (e.g. a PUT, 
   PROPFIND, MKCOL, MOVE or COPY) is forbidden because it would exceed 
   their allotted quota.  In order to differentiate the response from 
   other storage problems, the server SHOULD include an XML error body 
   as defined by DeltaV [RFC3253] with the <DAV:storage-quota-reached/> 
   precondition tag. 
    
   Example error response:  
    
   HTTP/1.1 507 Insufficient Storage 
   Content-Length: 100 
   Content-Type: text/xml 
    
   <?xml version=ö1.0ö> 
   <error xmlns=öDAV:ö> 
     <storage-quota-reached/> 
   </error> 
    
Notes 
    
   Server implementations store and account for their data in many 
   different ways.  Some of the challenges: 
    
    - Some server implementations find it prohibitive to count storage 
   used for metadata, others may choose to do so for better accounting.   
    
    - Older versions of resources may be stored as well. 
    
    - Variants of one resource may exist with different content lengths 
    
    - Content may be dynamically generated. 
    
    - Resource bodies can be compressed 
    
    - Some resources may be stored for ôfreeö, not counting against 
   quota. 
    
   Since server storage accounting can vary so much, clients should 
   expect the following: 
    
    - The size of a file on the clientÆs file system, or in a PUT 
   message, may not correspond to the amount of storage required by the 
   server to store the resource. Thus, the client cannot predict with 
   100% accuracy whether a given file will be allowed given the storage 
   quota. 
 
    - Deleting or overwriting a resource may not free up the same 
   amount of storage as indicated by the DAV:getcontentlength property 
   defined in [RFC2518] for the resource.  If deleting a resource does 
   not free up any space, the file may have been moved to a ôtrashö 
     
   Korver                  Expires Jul 2003                          6 

                    DAV Collection Size and Quota        January 2003 
    
    
   folder or ôrecycle binö, or retained as in versioning systems 
   [RFC3253]. 
    
    - The total size of a collection, DAV:quota-used-bytes, is not 
   necessarily a sum of the DAV:getcontentlength properties for 
   resources stored in the collection.   
    
    - On some systems where quota is counted by collection and not by 
   user, a quota on a sub-collection may be larger than the quota on 
   its parent collection that contains it.  For example, the quota on 
   /~milele/ may be 100 MB, but the quota on /~milele/public/ may be 
   unlimited.  This allows the space used by /~milele/public/ to be as 
   large as the quota on /~milele/ allows (depending on the other 
   contents of /~milele/) even if the quota on /~milele/ is changed.  
   Thus, even when the quota on a parent collection is changed, it is 
   not necessarily required to change the quota on every child or 
   descendant collection. 
 
Security Considerations 
    
   A hacker may prefer to store files in collections with a large 
   quota.  This isn't strictly a security concern because it doesn't 
   make it any easier to store files.  On the other hand, the 
   DAV:quota-used-bytes property may make it easier to detect tampering 
   or misuse. 
    
   If a server chooses to make the DAV:quota-assigned-bytes writable by 
   clients with sufficient authorization, then it is opening up a 
   certain amount of near-administration functionality to clients.  
   However, it is not required for the DAV:quota-assigned-bytes 
   property to be writeable by any clients, so a server can easily 
   avoid this consideration. 
 
Internationalization Considerations 
 
   Quota is counted in Arabic numerals expressed in strings. There are 
   no internationalization considerations. 
 
IANA Considerations 
 
   There are no IANA considerations. 
 
Intellectual Property 
 
   The following notice is copied from [RFC2026], and describes the 
   position of the IETF concerning intellectual property claims made 
   against this document.  
    
   The IETF takes no position regarding the validity or scope of any 
   intellectual property or other rights that might be claimed to  
   pertain to the implementation or use of the technology described in 
   this document or the extent to which any license under such rights 
   might or might not be available; neither does it represent that it 
     
   Korver                  Expires Jul 2003                          7 

                    DAV Collection Size and Quota        January 2003 
    
    
   has made any effort to identify any such rights.  Information on the 
   IETF's procedures with respect to rights in standards-track and 
   standards-related documentation can be found in BCP-11.  Copies of 
   claims of rights made available for publication and any assurances 
   of licenses to be made available, or the result of an attempt made 
   to obtain a general license or permission for the use of such 
   proprietary rights by implementors or users of this specification 
   can be obtained from the IETF Secretariat. 
 
   The IETF invites any interested party to bring to its attention any 
   copyrights, patents or patent applications, or other proprietary 
   rights which may cover technology that may be required to practice 
   this standard. Please address the information to the IETF Executive 
   Director.  
    
Acknowledgements 
 
   Jim Whitehead and Jim Luther provided valuable comments on this 
   document. 


































     
   Korver                  Expires Jul 2003                          8 

                    DAV Collection Size and Quota        January 2003 
    
    
References 
    
   [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 
      Requirement Levels", BCP 14, RFC 2119, March 1997. 
    
   [RFC2026] Bradner, S., ôThe Internet Standards Process û Revision 
      3ö, BCP 9, RFC2026, October 1996. 
    
   [RFC2518] Goland, Y., Whitehead, E., Faizi, A., Carter, S., and 
      Jensen, D., "HTTP Extensions for Distributed Authoring -- 
      WebDAV", RFC2518, February 1999. 
    
   [RFC3010] Shepler S., B. Callaghan, D. Robinson, R.  Thurlow, C. 
      Beame, M. Eisler, D. Noveck,  ôNFS version 4 Protocolö, RFC3010, 
      December 2000. 
    
    
    
    
Author's Addresses 
    
   Brian Korver 
   Xythos Software, Inc. 
   77 Maiden Lane, Suite 200    Phone:  1-415-248-9033 
   San Francisco, CA, USA       Email:  briank@xythos.com 
    
   Lisa Dusseault 
   Xythos Software, Inc. 
   77 Maiden Lane, Suite 200    Phone:  1-415-248-9004 
   San Francisco, CA, USA       Email:  lisa@xythos.com 
    
   Clark Warner 
   Netezza Corporation 
   200 Crossing Blvd.           Phone:  1-508-665-6800 x889 
   Framingham, MA 01702         Email:  webdav@thewarners.com 
    
 
















     
   Korver                  Expires Jul 2003                          9 



PAFTECH AB 2003-20262026-04-24 10:33:59