Class FileUpload
- All Implemented Interfaces:
Closeable
,AutoCloseable
,AttachedFile
This is used to upload data to discord for various purposes.
The InputStream
will be closed on consumption by the request.
You can use close()
to close the stream manually.
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addPart
(okhttp3.MultipartBody.Builder builder, int index) Used internally to build the multipart request.void
close()
static FileUpload
Create a newFileUpload
for a byte array.static FileUpload
Create a newFileUpload
for a local file.static FileUpload
Create a newFileUpload
for a local file.static FileUpload
fromData
(InputStream data, String name) Create a newFileUpload
for an input stream.static FileUpload
fromData
(Path path, String name, OpenOption... options) Create a newFileUpload
for a local file.static FileUpload
fromData
(Path path, OpenOption... options) Create a newFileUpload
for a local file.getData()
TheInputStream
representing the data to upload as a file.getName()
The filename for the file.okhttp3.RequestBody
getRequestBody
(okhttp3.MediaType type) Creates a re-usable instance ofRequestBody
with the specified content-type.toAttachmentData
(int index) Used internally to build attachment descriptions for requests.toString()
-
Method Details
-
fromData
Create a newFileUpload
for an input stream.
This is used to upload data to discord for various purposes.The
InputStream
will be closed on consumption by the request. You can useclose()
to close the stream manually.- Parameters:
data
- TheInputStream
to uploadname
- The representative name to use for the file- Returns:
FileUpload
- Throws:
IllegalArgumentException
- If null is provided or the name is empty- See Also:
-
fromData
Create a newFileUpload
for a byte array.
This is used to upload data to discord for various purposes.- Parameters:
data
- Thebyte[]
to uploadname
- The representative name to use for the file- Returns:
FileUpload
- Throws:
IllegalArgumentException
- If null is provided or the name is empty
-
fromData
Create a newFileUpload
for a local file.
This is used to upload data to discord for various purposes.This opens a
FileInputStream
, which will be closed on consumption by the request. You can useclose()
to close the stream manually.- Parameters:
file
- TheFile
to uploadname
- The representative name to use for the file- Returns:
FileUpload
- Throws:
IllegalArgumentException
- If null is provided or the name is emptyUncheckedIOException
- If an IOException is thrown while opening the file- See Also:
-
fromData
Create a newFileUpload
for a local file.
This is used to upload data to discord for various purposes.This opens a
FileInputStream
, which will be closed on consumption by the request. You can useclose()
to close the stream manually.- Parameters:
file
- TheFile
to upload- Returns:
FileUpload
- Throws:
IllegalArgumentException
- If null is providedUncheckedIOException
- If an IOException is thrown while opening the file- See Also:
-
fromData
@Nonnull public static FileUpload fromData(@Nonnull Path path, @Nonnull String name, @Nonnull OpenOption... options) Create a newFileUpload
for a local file.
This is used to upload data to discord for various purposes.This opens the path using
Files.newInputStream(Path, OpenOption...)
, which will be closed on consumption by the request. You can useclose()
to close the stream manually.- Parameters:
path
- ThePath
of the file to uploadname
- The representative name to use for the fileoptions
- TheOpenOptions
specifying how the file is opened- Returns:
FileUpload
- Throws:
IllegalArgumentException
- If null is provided or the name is emptyUncheckedIOException
- If an IOException is thrown while opening the file
-
fromData
Create a newFileUpload
for a local file.
This is used to upload data to discord for various purposes. UsesPath.getFileName()
to specify the name of the file, to customize the filename usefromData(Path, String, OpenOption...)
.This opens the path using
Files.newInputStream(Path, OpenOption...)
, which will be closed on consumption by the request. You can useclose()
to close the stream manually.- Parameters:
path
- ThePath
of the file to uploadoptions
- TheOpenOptions
specifying how the file is opened- Returns:
FileUpload
- Throws:
IllegalArgumentException
- If null is providedUncheckedIOException
- If an IOException is thrown while opening the file
-
getName
The filename for the file.- Returns:
- The filename
-
getData
TheInputStream
representing the data to upload as a file.- Returns:
- The
InputStream
-
getRequestBody
Creates a re-usable instance ofRequestBody
with the specified content-type.This body will automatically close the
resource
when the request is done. However, since the body buffers the data, it can be used multiple times regardless.- Parameters:
type
- The content-type to use for the body (e.g."application/octet-stream"
)- Returns:
RequestBody
- Throws:
IllegalArgumentException
- If the content-type is null
-
addPart
Description copied from interface:AttachedFile
Used internally to build the multipart request.The index can be used as a unique identifier for the multipart name, which is required to be unique by Discord.
- Specified by:
addPart
in interfaceAttachedFile
- Parameters:
builder
- TheMultipartBody.Builder
used for the request bodyindex
- The index of the attachment, ignored forAttachmentUpdate
-
toAttachmentData
Description copied from interface:AttachedFile
Used internally to build attachment descriptions for requests.
This contains the id/index of the attachment, and the name of the file.- Specified by:
toAttachmentData
in interfaceAttachedFile
- Parameters:
index
- The reference index (should be same asAttachedFile.addPart(MultipartBody.Builder, int)
)- Returns:
DataObject
for the attachment
-
close
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Throws:
IOException
-
toString
-