1HTTP::DAV::Resource(3)User Contributed Perl DocumentationHTTP::DAV::Resource(3)
2
3
4

NAME

6       HTTP::DAV::Resource - Represents and interfaces with WebDAV Resources
7

SYNOPSIS

9       Sample
10

DESCRIPTION

12       Description here
13

CONSTRUCTORS

15       new Returns a new resource represented by the URI.
16
17           $r = HTTP::DAV::Resource->new(
18                   -uri => $uri,
19                   -LockedResourceList => $locks,
20                   -Comms => $comms
21                   -Client => $dav_client
22                );
23
24           On creation a Resource object needs 2 other objects passed in:
25
26           1. a "ResourceList" Object. This list will be added to if you lock
27           this Resource.
28
29           2. a "Comms" Object. This object will be used for HTTP
30           communication.
31
32           2. a "HTTP::DAV" Object. This object is where all locks are stored
33

METHODS

35       get/GET
36           Performs an HTTP GET and returns a DAV::Response object.
37
38            $response = $resource->get;
39            print $resource->get_content if ($response->is_success);
40
41       put/PUT
42           Performs an HTTP PUT and returns a DAV::Response object.
43
44           $response = $resource->put( $string );
45
46           $string is be passed as the body.
47
48            e.g.
49            $response = $resource->put($string);
50            print $resource->get_content if ($response->is_success);
51
52           Will use a Lock header if this resource was previously locked.
53
54       copy
55           Not implemented
56
57       move
58           Not implemented
59
60       delete
61           Performs an HTTP DELETE and returns a DAV::Response object.
62
63            $response = $resource->delete;
64            print "Delete successful" if ($response->is_success);
65
66           Will use a Lock header if this resource was previously locked.
67
68       options
69           Performs an HTTP OPTIONS and returns a DAV::Response object.
70
71            $response = $resource->options;
72            print "Yay for PUT!" if $resource->is_option("PUT");
73
74       mkcol
75           Performs a WebDAV MKCOL request and returns a DAV::Response object.
76
77            $response = $resource->mkcol;
78            print "MKCOL successful" if ($response->is_success);
79
80           Will use a Lock header if this resource was previously locked.
81
82       proppatch
83           xxx
84
85       propfind
86           Performs a WebDAV PROPFIND request and returns a DAV::Response
87           object.
88
89            $response = $resource->propfind;
90            if ($response->is_success) {
91               print "PROPFIND successful\n";
92               print $resource->get_property("displayname") . "\n";
93            }
94
95           A successful PROPFIND fills the object with much data about the
96           Resource.  Including:
97              displayname
98              ...
99              TODO
100
101       lock
102           Performs a WebDAV LOCK request and returns a DAV::Response object.
103
104            $resource->lock(
105                   -owner   => "Patrick Collins",
106                   -depth   => "infinity"
107                   -scope   => "exclusive",
108                   -type    => "write"
109                   -timeout => TIMEOUT',
110                )
111
112           lock takes the following arguments.
113
114           owner - Indicates who locked this resource
115
116           The default value is:
117            DAV.pm/v$DAV::VERSION ($$)
118
119            e.g. DAV.pm/v0.1 (123)
120
121           If you use a URL as the owner, the module will automatically
122           indicate to the server that is is a URL
123           (<D:href>http://...</D:href>)
124
125           depth - Indicates the depth of the lock.
126
127           Legal values are 0 or infinity. (1 is not allowed).
128
129           The default value is infinity.
130
131           A lock value of 0 on a collection will lock just the collection but
132           not it's members, whereas a lock value of infinity will lock the
133           collection and all of it's members.
134
135           scope - Indicates the scope of the lock.
136
137           Legal DAV values are "exclusive" or "shared".
138
139           The default value is exclusive.
140
141           See section 6.1 of RFC2518 for a description of shared vs.
142           exclusive locks.
143
144           type - Indicates the type of lock (read, write, etc)
145
146           The only legal DAV value currently is "write".
147
148           The default value is write.
149
150           timeout - Indicates when the lock will timeout
151
152           The timeout value may be one of, an Absolute Date, a Time Offset
153           from now, or the word "infinity".
154
155           The default value is "infinity".
156
157           The following are all valid timeout values:
158
159           Time Offset:
160               30s          30 seconds from now
161               10m          ten minutes from now
162               1h           one hour from now
163               1d           tomorrow
164               3M           in three months
165               10y          in ten years time
166
167           Absolute Date:
168
169               timeout at the indicated time & date (UTC/GMT)
170                  2000-02-31 00:40:33
171
172               timeout at the indicated date (UTC/GMT)
173                  2000-02-31
174
175           You can use any of the Absolute Date formats specified in
176           HTTP::Date (see perldoc HTTP::Date)
177
178           Note: the DAV server may choose to ignore your specified timeout.
179
180       unlock
181           Performs a WebDAV UNLOCK request and returns a DAV::Response
182           object.
183
184            $response = $resource->unlock()
185            $response = $resource->unlock( -force => 1 )
186            $response = $resource->unlock(
187               -token => "opaquelocktoken:1342-21423-2323" )
188
189           This method will automatically use the correct locktoken If: header
190           if this resource was previously locked.
191
192           force - Synonymous to calling $resource->forcefully_unlock_all.
193
194       forcefully_unlock_all
195           Remove all locks from a resource and return the last DAV::Response
196           object. This method take no arguments.
197
198           $response = $resource->forcefully_unlock_all;
199
200           This method will perform a lockdiscovery against the resource to
201           determine all of the current locks. Then it will UNLOCK them one by
202           one. unlock( -token => locktoken ).
203
204           This unlock process is achievable because DAV does not enforce any
205           security over locks.
206
207           Note: this method returns the LAST unlock response (this is
208           sufficient to indicate the success of the sequence of unlocks). If
209           an unlock fails, it will bail and return that response.  For
210           instance, In the event that there are 3 shared locks and the second
211           unlock method fails, then you will get returned the unsuccessful
212           second response. The 3rd unlock will not be attempted.
213
214           Don't run with this knife, you could hurt someone (or yourself).
215
216       steal_lock
217           Removes all locks from a resource, relocks it in your name and
218           returns the DAV::Response object for the lock command. This method
219           takes no arguments.
220
221           $response = $resource->steal_lock;
222
223           Synonymous to forcefully_unlock_all() and then lock().
224
225       lockdiscovery
226           Discover the locks held against this resource and return a
227           DAV::Response object. This method take no arguments.
228
229            $response = $resource->lockdiscovery;
230            @locks = $resource->get_locks if $response->is_success;
231
232           This method is in fact a simplified version of propfind().
233
234       as_string
235           Returns a string representation of the object. Mainly useful for
236           debugging purposes. It takes no arguments.
237
238           print $resource->as_string
239

ACCESSOR METHODS (get, set and is)

241       is_option
242           Returns a boolean indicating whether this resource supports the
243           option passed in as a string. The option match is case insensitive
244           so, PUT and Put are should both work.
245
246            if ($resource->is_option( "PUT" ) ) {
247               $resource->put( ... )
248            }
249
250           Note: this routine automatically calls the options() routine which
251           makes the request to the server. Subsequent calls to is_option will
252           use the cached option list. To force a rerequest to the server call
253           options()
254
255       is_locked
256           Returns a boolean indicating whether this resource is locked.
257
258             @lock = $resource->is_locked( -owned=>[1|0] );
259
260           owned - this parameter is used to ask, is this resource locked by
261           me?
262
263           Note: You must have already called propfind() or lockdiscovery()
264
265           e.g.  Is the resource locked at all?
266            print "yes" if $resource->is_locked();
267
268           Is the resource locked by me?
269            print "yes" if $resource->is_locked( -owned=>1 );
270
271           Is the resource locked by someone other than me?
272            print "yes" if $resource->is_locked( -owned=>0 );
273
274       is_collection
275           Returns a boolean indicating whether this resource is a collection.
276
277            print "Directory" if ( $resource->is_collection );
278
279           You must first have performed a propfind.
280
281       get_uri
282           Returns the URI object for this resource.
283
284            print "URL is: " . $resource->get_uri()->as_string . "\n";
285
286           See the URI manpage from the LWP libraries (perldoc URI)
287
288       get_property
289           Returns a property value. Takes a string as an argument.
290
291            print $resource->get_property( "displayname" );
292
293           You must first have performed a propfind.
294
295       get_options
296           Returns an array of options allowed on this resource.  Note: If
297           $resource->options has not been called then it will return an empty
298           array.
299
300           @options = $resource->get_options
301
302       get_content
303           Returns the resource's content/body as a string.  The content is
304           typically the result of a GET.
305
306           $content = $resource->get_content
307
308       get_content_ref
309           Returns the resource's content/body as a reference to a string.
310           This is useful and more efficient if the content is large.
311
312           ${$resource->get_content_ref} =~ s/\bfoo\b/bar/g;
313
314           Note: You must have already called get()
315
316       get_lock
317           Returns the DAV::Lock object if it exists. Requires opaquelocktoken
318           passed as a parameter.
319
320            $lock = $resource->get_lock( "opaquelocktoken:234214--342-3444" );
321
322       get_locks
323           Returns a list of any DAV::Lock objects held against the resource.
324
325             @lock = $resource->get_locks( -owned=>[1|0] );
326
327           owned - this parameter indicates which locks you want.
328            - '1', requests any of my locks. (Locked by this DAV instance).
329            - '0' ,requests any locks not owned by us.
330            - any other value or no value, requests ALL locks.
331
332           Note: You must have already called propfind() or lockdiscovery()
333
334           e.g.
335            Give me my locks
336             @lock = $resource->get_locks( -owned=>1 );
337
338            Give me all locks
339             @lock = $resource->get_locks();
340
341       get_lockedresourcelist
342       get_parentresourcelist
343       get_comms
344       set_parent_resourcelist
345           $resource->set_parent_resourcelist( $resourcelist )
346
347           Sets the parent resource list (ask the question, which collection
348           am I a member of?). See HTTP::DAV::ResourceList.
349
350
351
352perl v5.36.0                      2022-07-22            HTTP::DAV::Resource(3)
Impressum