Package org.globus.io.urlcopy
Class UrlCopy
java.lang.Object
org.globus.io.urlcopy.UrlCopy
- All Implemented Interfaces:
Runnable
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected boolean
static final int
maximum buffer size to read or write when putting and getting filesprotected int
protected boolean
protected boolean
protected long
protected boolean
protected Authorization
protected GSSCredential
protected GlobusURL
protected List
protected long
protected long
protected Authorization
protected GSSCredential
protected GlobusURL
protected int
protected boolean
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addUrlCopyListener
(UrlCopyListener listener) Adds url copy listener.void
cancel()
Cancels the transfer in progress.void
copy()
Performs the copy function.int
Returns buffer size used for transfering data.boolean
getDCAU()
Returns authorization type for the destination side for the url copy.Returns credentials used for authenticating the destination side for the url copy.long
Gets the offset in the destination file from which data starts to be writtenReturns destination url.boolean
Can be used to query whether the use of the ALLO command with GridFTP uploads is disabled.protected GlobusInputStream
Returns input stream based on the source urlprotected GlobusOutputStream
getOutputStream
(long size) Returns output stream based on the destination url.Returns authorization type for the source side for the url copy.Returns credentials used for authenticating the source side for the url copy.long
Gets the maximum data size that will be transfered.long
Gets the offset in the source file from which data starts to be readReturns source url.int
Returns TCP buffer size used for transfers data.boolean
Checks if append mode is enabled.boolean
Checks if the transfer was canceled.protected void
negotiateDCAU
(FTPClient src, FTPClient dst) void
removeUrlCopyListener
(UrlCopyListener listener) Remove url copy listenervoid
run()
This method is an implementation of theRunnable
interface and can be used to perform the copy in a separate thread.void
setAppendMode
(boolean appendMode) Enables/disables append mode.void
setBufferSize
(int size) Sets buffer size for transfering data.void
setCredentials
(GSSCredential credentials) Sets credentials to use for both sides.void
setDCAU
(boolean dcau) void
Sets destination authorization typevoid
setDestinationCredentials
(GSSCredential dstCredentials) Sets destination url credentials.void
setDestinationOffset
(long destinationOffset) Sets the offset in the destination file from which data starts to be written.void
setDestinationUrl
(GlobusURL dest) Sets destination url.void
setDisableAllo
(boolean disableAllo) Allows disabling of the use of ALLO with GridFTP uploadsvoid
Sets source authorization typevoid
setSourceCredentials
(GSSCredential srcCredentials) Sets source url credentials.void
setSourceFileLength
(long sourceLength) Allows a partial transfer by setting the maximum number of bytes that will be transfered.void
setSourceFileOffset
(long sourceOffset) Sets the offset in the source file from which data starts to be read.void
setSourceUrl
(GlobusURL source) Sets source url.void
setTCPBufferSize
(int size) Sets the TCP buffer size for GridFTP transfers.void
setUseThirdPartyCopy
(boolean thirdParty) Enables/disables usage of third party transfers.
-
Field Details
-
BUFF_SIZE
public static final int BUFF_SIZEmaximum buffer size to read or write when putting and getting files- See Also:
-
bufferSize
protected int bufferSize -
srcCreds
-
srcAuth
-
dstCreds
-
dstAuth
-
dcau
protected boolean dcau -
appendMode
protected boolean appendMode -
srcUrl
-
dstUrl
-
canceled
protected boolean canceled -
thirdParty
protected boolean thirdParty -
listeners
-
sourceOffset
protected long sourceOffset -
destinationOffset
protected long destinationOffset -
sourceLength
protected long sourceLength -
tcpBufferSize
protected int tcpBufferSize -
disableAllo
protected boolean disableAllo
-
-
Constructor Details
-
UrlCopy
public UrlCopy()
-
-
Method Details
-
setDCAU
public void setDCAU(boolean dcau) -
getDCAU
public boolean getDCAU() -
setCredentials
Sets credentials to use for both sides.- Parameters:
credentials
- user credentials
-
setSourceCredentials
Sets source url credentials.- Parameters:
srcCredentials
- source url credentials.
-
setDestinationCredentials
Sets destination url credentials.- Parameters:
dstCredentials
- destination url credentials.
-
setSourceAuthorization
Sets source authorization type- Parameters:
auth
- authorization type to perform for source
-
setDestinationAuthorization
Sets destination authorization type- Parameters:
auth
- authorization type to perform for destination
-
getSourceCredentials
Returns credentials used for authenticating the source side for the url copy. If no source credentials are set, the default user credentials will used.- Returns:
- source credentials.
-
getDestinationCredentials
Returns credentials used for authenticating the destination side for the url copy. If no destination credentials are set, the default user credentials will used.- Returns:
- destination credentials.
-
getSourceAuthorization
Returns authorization type for the source side for the url copy. If no authorization type is set, the default authorization will be performed for a given protocol.- Returns:
- source authorization type
-
getDestinationAuthorization
Returns authorization type for the destination side for the url copy. If no authorization type is set, the default authorization will be performed for a given protocol.- Returns:
- destination authorization type
-
addUrlCopyListener
Adds url copy listener.- Parameters:
listener
- url copy listener
-
removeUrlCopyListener
Remove url copy listener- Parameters:
listener
- url copy listener
-
setBufferSize
public void setBufferSize(int size) Sets buffer size for transfering data. It does not set the TCP buffers.- Parameters:
size
- size of the data buffer
-
getBufferSize
public int getBufferSize()Returns buffer size used for transfering data.- Returns:
- data buffer size
-
setTCPBufferSize
public void setTCPBufferSize(int size) Sets the TCP buffer size for GridFTP transfers.- Parameters:
size
- size of TCP buffer
-
getTCPBufferSize
public int getTCPBufferSize()Returns TCP buffer size used for transfers data.- Returns:
- TCP buffer size
-
setAppendMode
public void setAppendMode(boolean appendMode) Enables/disables append mode.- Parameters:
appendMode
- if true, destination file will be appended.
-
isAppendMode
public boolean isAppendMode()Checks if append mode is enabled.- Returns:
- true if appending will be performed, false otherwise.
-
getDestinationOffset
public long getDestinationOffset()Gets the offset in the destination file from which data starts to be written- Returns:
- a value indicating the offset in bytes
-
setDestinationOffset
public void setDestinationOffset(long destinationOffset) Sets the offset in the destination file from which data starts to be written. The default offset is 0 (the beginning of the file)- Parameters:
destinationOffset
- the offset in bytes
-
getSourceLength
public long getSourceLength()Gets the maximum data size that will be transfered.- Returns:
- the size in bytes
-
setSourceFileLength
public void setSourceFileLength(long sourceLength) Allows a partial transfer by setting the maximum number of bytes that will be transfered. By default the entire source file is transfered.- Parameters:
sourceLength
- the size of the transfer in bytes
-
getSourceOffset
public long getSourceOffset()Gets the offset in the source file from which data starts to be read- Returns:
- a value indicating the offset in bytes
-
setSourceFileOffset
public void setSourceFileOffset(long sourceOffset) Sets the offset in the source file from which data starts to be read. The default offset is 0 (the beginning of the file)- Parameters:
sourceOffset
- the offset in bytes
-
setSourceUrl
Sets source url.- Parameters:
source
- source url.- Throws:
UrlCopyException
-
getSourceUrl
Returns source url.- Returns:
- url
-
setDestinationUrl
Sets destination url.- Parameters:
dest
- destination url- Throws:
UrlCopyException
-
getDestinationUrl
Returns destination url.- Returns:
- url
-
setUseThirdPartyCopy
public void setUseThirdPartyCopy(boolean thirdParty) Enables/disables usage of third party transfers.- Parameters:
thirdParty
- if true enable, false disable
-
getDisableAllo
public boolean getDisableAllo()Can be used to query whether the use of the ALLO command with GridFTP uploads is disabled. -
setDisableAllo
public void setDisableAllo(boolean disableAllo) Allows disabling of the use of ALLO with GridFTP uploads -
cancel
public void cancel()Cancels the transfer in progress. If no transfer is in progress it is ignored. -
isCanceled
public boolean isCanceled()Checks if the transfer was canceled.- Returns:
- true if transfer was canceled
-
run
public void run()This method is an implementation of theRunnable
interface and can be used to perform the copy in a separate thread.This method will perform the transfer and signal completion and errors through the
UrlCopyListener.transferCompleted()
andUrlCopyListener.transferError(Exception)
of any registered listeners (seeaddUrlCopyListener(UrlCopyListener)
). -
copy
Performs the copy function. Source and destination urls must be specified otherwise a exception is thrown. Also, if source and destination url are ftp urls and thirdPartyCopy is enabled, third party transfer will be performed. Urls, of course, must be of supported protocol. Currently, gsiftp, ftp, https, http, and file are supported.This method does not cause the
UrlCopyListener.transferCompleted()
andUrlCopyListener.transferError(Exception)
to be called. If you want completion/failures to be signaled asynchronously, either call therun()
method or wrap this object in aThread
.- Throws:
UrlCopyException
- in case of an error.
-
getInputStream
Returns input stream based on the source url- Throws:
Exception
-
getOutputStream
Returns output stream based on the destination url.- Throws:
Exception
-
negotiateDCAU
- Throws:
IOException
FTPException
-