[R] Closing FTP sessions with RCurl

J Payne jcpayne at uw.edu
Wed Jun 15 22:52:39 CEST 2016


Fantastic!  That did the trick.  I still suspect that there may be a command within RCurl that accomplishes the same thing, but in any case I’m very grateful to have a solution that works.  

 

Best,

 

John

 

From: William Dunlap <wdunlap at tibco.com>
Date: Wednesday, June 15, 2016 at 12:57 PM
To: J Payne <jcpayne at uw.edu>
Cc: Tom Wright <tom at maladmin.com>, R help list <r-help at r-project.org>
Subject: Re: [R] Closing FTP sessions with RCurl

 

>>    rm(curl) # release the curl! (does this end the session???)

 

Try adding a call to gc() immediately after this removal.  That will force an

immediate run of any finalizer associated with the object just removed.

With the call to gc(), the garbage collector will be called some time in the

future and the finalizers will be run then.

 

(I don't know if curl has a finalizer that closes the session.)

 


Bill Dunlap
TIBCO Software
wdunlap tibco.com

 

On Wed, Jun 15, 2016 at 12:34 PM, J Payne <jcpayne at uw.edu> wrote:

Thanks Tom!  I tried that and it didn’t work, but perhaps there are other problems.  The system administrator wrote “I think closing sessions immediately upon completion of the transfer,
or continuing to use the same session for additional requests would both have a similar and positive effect.”  However, I’ve now tried your solution to close the session, and also tried using one curl handle throughout, but the throttling persists.

John

On 6/14/16, 1:00 PM, "Tom Wright" <tom at maladmin.com> wrote:

>No expert here, and this isn't tested. It seems you can set the
>forbid.reuse option which will cause curl to shutdown the connection
>after transfer is complete.
>
>if(url.exists("http://www.omegahat.net/RCurl/index.html")) {
>   curl <- getCurlHandle()
>   curlSetOpt(.opts=list(forbid.reuse=1),curl=curl)
>   getURL("http://www.omegahat.net/RCurl/index.html", curl = curl)
>}
>
>On Tue, Jun 14, 2016 at 2:41 PM, J Payne <jcpayne at uw.edu> wrote:
>> Does anyone know how to close an FTP session with RCurl?  I am trying to automate the process of downloading snow data from a government website, and their server is throttling the connection after a few files are downloaded.  I contacted their system administrator, who wrote: “My suspicion at this point is that the getURL commands are opened and perform the function asked, then linger in wait for 15 minutes until or ftp server closes the idle sessions. Is there a way to tell R to close the sessions?”
>>
>>
>>
>> I’ve perused the RCurl manual but I don’t see a way to close sessions.  I tried copying the following example from the RCurl manual, but it didn’t solve the problem.  I’m a novice at this and I don’t understand the relationship between handles and sessions, so I am probably missing something.
>>
>>
>>
>> #EXAMPLE from getCurl(), p. 39
>>
>> if(url.exists("http://www.omegahat.net/RCurl/index.html")) {
>>
>>    curl = getCurlHandle()
>>
>>    getURL("http://www.omegahat.net/RCurl/index.html", curl = curl)
>>
>>    #getCurlInfo(curl) # I skipped this step
>>
>>    rm(curl) # release the curl! (does this end the session???)
>>
>> }
>>
>>
>>
>> Thanks!
>>
>>
>>
>> John
>>
>>
>>         [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.

______________________________________________
R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.




	[[alternative HTML version deleted]]



More information about the R-help mailing list