public class TusUploader
extends java.lang.Object
TusClient.createUpload(TusUpload)
, TusClient.createUpload(TusUpload)
and
TusClient.resumeOrCreateUpload(TusUpload)
.
uploadChunk()
getOffset()
to calculate the progressuploadChunk()
returns -1finish()
to free resourcesConstructor and Description |
---|
TusUploader(TusClient client,
TusUpload upload,
java.net.URL uploadURL,
io.tus.java.client.TusInputStream input,
long offset)
Begin a new upload request by opening a PATCH request to specified upload URL.
|
Modifier and Type | Method and Description |
---|---|
void |
finish()
Finish the request by closing the HTTP connection and the InputStream.
|
void |
finish(boolean closeInputStream)
Finish the request by closing the HTTP connection.
|
int |
getChunkSize()
Returns the current chunk size set using
setChunkSize(int) . |
long |
getOffset()
Get the current offset for the upload.
|
int |
getRequestPayloadSize()
Get the current maximum payload size for a single request.
|
java.net.URL |
getUploadURL()
This methods returns the destination
URL of the upload. |
void |
setChunkSize(int size)
Sets the used chunk size.
|
void |
setRequestPayloadSize(int size)
Set the maximum payload size for a single request counted in bytes.
|
int |
uploadChunk()
Upload a part of the file by reading a chunk from the InputStream and writing
it to the HTTP request's body.
|
int |
uploadChunk(int chunkSize)
Deprecated.
This method is inefficient and has been replaced by
setChunkSize(int)
and uploadChunk() and should not be used anymore. The reason is, that
this method allocates a new buffer with the supplied chunk size for each time
it's called without reusing it. This results in a high number of memory
allocations and should be avoided. The new methods do not have this issue. |
public TusUploader(TusClient client, TusUpload upload, java.net.URL uploadURL, io.tus.java.client.TusInputStream input, long offset) throws java.io.IOException
client
- Used for preparing a request (TusClient.prepareConnection(HttpURLConnection)
upload
- TusUpload
to be uploaded.uploadURL
- URL to send the request toinput
- Stream to read (and seek) from and upload to the remote serveroffset
- Offset to read fromjava.io.IOException
- Thrown if an exception occurs while issuing the HTTP request.public void setChunkSize(int size)
uploadChunk()
to indicate how
much data is uploaded in a single take. When choosing a value for this parameter you need to
consider that uploadChunk() will only return once the specified number of bytes has been
sent. For slow internet connections this may take a long time. In addition, a buffer with
the chunk size is allocated and kept in memory.size
- The new chunk sizepublic int getChunkSize()
setChunkSize(int)
.public void setRequestPayloadSize(int size) throws java.lang.IllegalStateException
OutOfMemoryError
.
This method must not be called when the uploader has currently an open connection to the
remote server. In general, try to set the payload size before invoking uploadChunk()
the first time.size
- Number of bytes for a single payloadjava.lang.IllegalStateException
- Thrown if the uploader currently has a connection opengetRequestPayloadSize()
public int getRequestPayloadSize()
setChunkSize(int)
public int uploadChunk() throws java.io.IOException, ProtocolException
getChunkSize()
and changed
using setChunkSize(int)
.
In order to obtain the new offset, use getOffset()
after this method returns.java.io.IOException
- Thrown if an exception occurs while reading from the source or writing
to the HTTP request.ProtocolException
@Deprecated public int uploadChunk(int chunkSize) throws java.io.IOException, ProtocolException
setChunkSize(int)
and uploadChunk()
and should not be used anymore. The reason is, that
this method allocates a new buffer with the supplied chunk size for each time
it's called without reusing it. This results in a high number of memory
allocations and should be avoided. The new methods do not have this issue.getOffset()
after this method returns.
This method ignored the payload size per request, which may be set using
setRequestPayloadSize(int)
. Please, use uploadChunk()
instead.chunkSize
- Maximum number of bytes which will be uploaded. When choosing a value
for this parameter you need to consider that the method call will only
return once the specified number of bytes have been sent. For slow
internet connections this may take a long time.java.io.IOException
- Thrown if an exception occurs while reading from the source or writing
to the HTTP request.ProtocolException
public long getOffset()
TusUpload.getSize()
to calculate the progress.public java.net.URL getUploadURL()
URL
of the upload.URL
of the upload.public void finish() throws ProtocolException, java.io.IOException
finish(false)
.ProtocolException
- Thrown if the server sends an unexpected status
codejava.io.IOException
- Thrown if an exception occurs while cleaning up.public void finish(boolean closeInputStream) throws ProtocolException, java.io.IOException
closeStream == false
and you do
not close the InputStream on your own. To be safe use finish()
.closeInputStream
- Determines whether the InputStream is closed with the HTTP connection. Not closing the
Input Stream may be useful for future upload a future continuation of the upload.ProtocolException
- Thrown if the server sends an unexpected status codejava.io.IOException
- Thrown if an exception occurs while cleaning up.