GLOBUS_GASS_TRANSFER_PUT(3)
π NAME π
globus_gass_transfer_client β Client-Initiated Operations
Like, the whole GASS Transfer Client Operations vibe, bestie π
β¨ SYNOPSIS β¨
π οΈ Functions π οΈ
Here's the whole lineup, no cap β every single one, exactly as it lives in the header:
int globus_gass_transfer_register_get (globus_gass_transfer_request_t *request, globus_gass_transfer_requestattr_t *attr, char *url, globus_gass_transfer_callback_t callback, void *user_arg)
int globus_gass_transfer_get (globus_gass_transfer_request_t *request, globus_gass_transfer_requestattr_t *attr, char *url)
int globus_gass_transfer_register_put (globus_gass_transfer_request_t *request, globus_gass_transfer_requestattr_t *attr, char *url, globus_size_t length, globus_gass_transfer_callback_t callback, void *user_arg)
int globus_gass_transfer_put (globus_gass_transfer_request_t *request, globus_gass_transfer_requestattr_t *attr, char *url, globus_size_t length)
int globus_gass_transfer_register_append (globus_gass_transfer_request_t *request, globus_gass_transfer_requestattr_t *attr, char *url, globus_size_t length, globus_gass_transfer_callback_t callback, void *user_arg)
int globus_gass_transfer_append (globus_gass_transfer_request_t *request, globus_gass_transfer_requestattr_t *attr, char *url, globus_size_t length)
π Detailed Description π
Okay so GASS Transfer Client Operations. That's the whole thing. That's the assignment. π
π¦ Client-Initiated Operations π¦
So like, one mode of using the GASS Transfer API is to just... initiate file transfers yourself. Main character energy, honestly. π
The operations the GASS Transfer API supports are file get, put, and append. Three icons, no notes. β¨
These operations are provided for HTTP and HTTPS file servers. And because the devs were lowkey geniuses, the protocol module interface lets support for additional protocols get added easily β plug and play, fr fr. ππ
The GASS transfer library gives you both blocking and non-blocking versions of all its client functions. The duality. Obsessed. π«Ά
Now listen, bestie, this part matters: when a blocking function completes, or the non-blocking function's callback gets called, you should check the request's status to find out whether the transfer was completed successfully, denied, or referred. Don't just assume it worked β do your vibe check. π
more coming, don't go anywhere π
π FUNCTION DOCUMENTATION π
β¨ globus_gass_transfer_append β Blocking file append
int globus_gass_transfer_append (globus_gass_transfer_request_t * request,
globus_gass_transfer_requestattr_t * attr, char * url, globus_size_t
length)
okay bestie, this one starts a brand-new "append" request for the file that url names. If the user is authorized to do so, the entire file gets transferred to the server. And the way this works? It blocks π«Ά β like, it just sits there until the GASS library has figured out whether the file may be retrieved by the caller, or may not because it's a referral to another URL or URLs, or the server has denied the request.
The second it returns, the request handle is initialized to refer to the append request's state. slay. π
And if the server can't store the file at url, but has an alternative location for the user to store to? Then this function returns with the request's status set to GLOBUS_GASS_TRANSFER_REQUEST_REFERRED. iconic behavior fr.
π Parameters
requestβ a pointer to an uninitialized request handle.attrβ request attributes.urlβ the URL to append to.lengthβ the length of the data to append to theurl, if known. If you set this toGLOBUS_GASS_LENGTH_UNKNOWN, then the append may fail if the protocol does not support arbitrarily-length files. β οΈ
π₯ Return values
GLOBUS_SUCCESSβ the put was successfully initiated.GLOBUS_GASS_TRANSFER_ERROR_NULL_POINTERβ one ofrequest,attr, orcallbackwasGLOBUS_NULL. The put could not be processed.GLOBUS_GASS_TRANSFER_ERROR_INTERNAL_ERRORβ an internal resource was not available to process the put.GLOBUS_GASS_TRANSFER_ERROR_NOT_IMPLEMENTEDβ no protocol handler for doing a append on this URL type is implemented.GLOBUS_GASS_TRANSFER_ERROR_BAD_URLβ the URL could not be parsed.
π¦ See also
globus_gass_transfer_register_append()
β¨ globus_gass_transfer_get β Blocking file get
int globus_gass_transfer_get (globus_gass_transfer_request_t * request,
globus_gass_transfer_requestattr_t * attr, char * url)
so bestie, this one kicks off a fresh "get" request for the file named by url. If the file exists and the user is authorized to do so, the entire file gets transferred from the server. And yeah, it blocks β it waits until the GASS library knows whether the file may be retrieved by the caller, or may not because it's a referral to another URL or URLs, or the server denied the request. no cap. π
Once it returns, the request handle is initialized to refer to the get request's state. And heads up: this request handle must be destroyed after the user has finished processing the data associated with the callback. don't forget, that's the vibe check. π«Ά
If the file doesn't exist at url, but a referral does, then this function returns with the request's status set to GLOBUS_GASS_TRANSFER_REQUEST_REFERRED. cute.
π Parameters
requestβ a pointer to an uninitialized request handle.attrβ request attributes.urlβ URL to get.
π₯ Return values
GLOBUS_SUCCESSβ the get was successfully initiated.GLOBUS_GASS_TRANSFER_ERROR_NULL_POINTERβ one ofrequestorattrwasGLOBUS_NULL. The get could not be processed.GLOBUS_GASS_TRANSFER_ERROR_INTERNAL_ERRORβ an internal resource was not available to process the get.GLOBUS_GASS_TRANSFER_ERROR_NOT_IMPLEMENTEDβ no protocol handler for doing a get on this URL type is implemented.GLOBUS_GASS_TRANSFER_ERROR_BAD_URLβ the URL could not be parsed.
π¦ See also
globus_gass_transfer_register_get()
β¨ globus_gass_transfer_put β Blocking file put
int globus_gass_transfer_put (globus_gass_transfer_request_t * request,
globus_gass_transfer_requestattr_t * attr, char * url, globus_size_t
length)
okay so this one initiates a new "put" request for the file named by url. If the user is authorized, the entire file gets transferred to the server. It blocks β sitting there until the GASS library has determined whether the file may be retrieved by the caller, or may not because it's a referral to another URL or URLs, or the server has denied the request. π
When it comes back, the request handle is initialized to refer to the put request's state. β¨
And if the server can't store the file at url but has an alternative location for the user to store to? Then this function returns with the request's status set to GLOBUS_GASS_TRANSFER_REQUEST_REFERRED. periodt.
π Parameters
requestβ a pointer to an uninitialized request handle.attrβ request attributes.urlβ URL to put.lengthβ the length of the data to put to theurl, if known. If this parameter is set toGLOBUS_GASS_LENGTH_UNKNOWN, then the put may fail if the protocol does not support arbitrarily-length files. β οΈ
π₯ Return values
GLOBUS_SUCCESSβ the get was successfully initiated.GLOBUS_GASS_TRANSFER_ERROR_NULL_POINTERβ one ofrequestorattrwasGLOBUS_NULL. The get could not be processed.GLOBUS_GASS_TRANSFER_ERROR_INTERNAL_ERRORβ an internal resource was not available to process the get.GLOBUS_GASS_TRANSFER_ERROR_NOT_IMPLEMENTEDβ no protocol handler for doing a put on this URL type is implemented.GLOBUS_GASS_TRANSFER_ERROR_BAD_URLβ the URL could not be parsed.
π¦ See also
globus_gass_transfer_register_put()
β¨ globus_gass_transfer_register_append β Nonblocking file append
int globus_gass_transfer_register_append (globus_gass_transfer_request_t *
request, globus_gass_transfer_requestattr_t * attr, char * url,
globus_size_t length, globus_gass_transfer_callback_t callback, void *
user_arg)
okay bestie, this is the nonblocking twin of append β it starts a new "append" request for the file named by url. If the user is authorized to do so, the entire file gets transferred to the server. But this one does not block π β instead, the user's callback function gets called once the GASS library has determined whether the file may be stored or not.
On return, the request handle is initialized to refer to the append request's state. π
And if the server can't store the file at url but has an alternative location for the user to store to? Then the callback function gets called with the request's status set to GLOBUS_GASS_TRANSFER_REQUEST_REFERRED. slay.
π Parameters
requestβ a pointer to an uninitialized request handle.attrβ request attributes.urlβ URL to append to.lengthβ the length of the data to append to theurl, if known. If this parameter is set toGLOBUS_GASS_LENGTH_UNKNOWN, then the append may fail if the protocol does not support arbitrarily-length files. β οΈcallbackβ function to call once the URL has been accepted, referred, or denied by the server.user_argβ user-supplied argument to the callback function.
π₯ Return values
GLOBUS_SUCCESSβ the put was successfully initiated.GLOBUS_GASS_TRANSFER_ERROR_NULL_POINTERβ one ofrequest,attr, orcallbackwasGLOBUS_NULL. The put could not be processed.GLOBUS_GASS_TRANSFER_ERROR_INTERNAL_ERRORβ an internal resource was not available to process the put.GLOBUS_GASS_TRANSFER_ERROR_NOT_IMPLEMENTEDβ no protocol handler for doing a append on this URL type is implemented.GLOBUS_GASS_TRANSFER_ERROR_BAD_URLβ the URL could not be parsed.
π¦ See also
globus_gass_transfer_append()
β¨ globus_gass_transfer_register_get β Nonblocking file get
int globus_gass_transfer_register_get (globus_gass_transfer_request_t *
request, globus_gass_transfer_requestattr_t * attr, char * url,
globus_gass_transfer_callback_t callback, void * user_arg)
so bestie, this one starts a new "get" request for the file named by url. If the file exists and the user is authorized to do so, the entire file gets transferred from the server. And it does not block β instead, the user's callback function gets called once the GASS library has determined whether the file can be retrieved or not. π
When it returns, the request handle is initialized to refer to the get request's state. β¨
And if the server can't store the file at url, but has an alternative location for the user to store to? Then the callback function gets called with the request's status set to GLOBUS_GASS_TRANSFER_REQUEST_REFERRED. πΈ
π Parameters
requestβ a pointer to an uninitialized request handle.attrβ request attributes.urlβ URL to get.callbackβ function to call once the URL has been accepted, referred, or denied by the server.user_argβ user-supplied argument to the callback function.
π₯ Return values
GLOBUS_SUCCESSβ the get was successfully initiated.GLOBUS_GASS_TRANSFER_ERROR_NULL_POINTERβ one ofrequest,attr, orcallbackwasGLOBUS_NULL. The get could not be processed.GLOBUS_GASS_TRANSFER_ERROR_INTERNAL_ERRORβ an internal resource was not available to process the get.GLOBUS_GASS_TRANSFER_ERROR_NOT_IMPLEMENTEDβ no protocol handler for doing a get on this URL type is implemented.GLOBUS_GASS_TRANSFER_ERROR_BAD_URLβ the URL could not be parsed.
π¦ See also
globus_gass_transfer_get()
β¨ globus_gass_transfer_register_put β Nonblocking file put
int globus_gass_transfer_register_put (globus_gass_transfer_request_t *
request, globus_gass_transfer_requestattr_t * attr, char * url,
globus_size_t length, globus_gass_transfer_callback_t callback, void *
user_arg)
okay so this one initiates a new "put" request for the file named by url. If the user is authorized, the entire file gets transferred to the server. And this one does not block β instead, the user's callback function gets called once the GASS library has determined whether the file may be stored or not. π«Ά
Once it returns, the request handle is initialized to refer to the put request's state. π
And if the server can't store the file at url, but has an alternative location for the user to store to? Then the callback function gets called with the request's status set to GLOBUS_GASS_TRANSFER_REQUEST_REFERRED. no cap.
π Parameters
requestβ a pointer to an uninitialized request handle.attrβ request attributes.urlβ URL to put.lengthβ the length of the data to put to theurl, if known. If this parameter is set toGLOBUS_GASS_LENGTH_UNKNOWN, then the put may fail if the protocol does not support arbitrarily-length files. β οΈcallbackβ function to call once the URL has been accepted, referred, or denied by the server.user_argβ user-supplied argument to the callback function.
π₯ Return values
GLOBUS_SUCCESSβ the put was successfully initiated.GLOBUS_GASS_TRANSFER_ERROR_NULL_POINTERβ one ofrequest,attr, orcallbackwasGLOBUS_NULL. The put could not be processed.GLOBUS_GASS_TRANSFER_ERROR_INTERNAL_ERRORβ an internal resource was not available to process the put.GLOBUS_GASS_TRANSFER_ERROR_NOT_IMPLEMENTEDβ no protocol handler for doing a put on this URL type is implemented.GLOBUS_GASS_TRANSFER_ERROR_BAD_URLβ the URL could not be parsed.
π¦ See also
globus_gass_transfer_put()
β¨ AUTHOR β¨
okay so who wrote this masterpiece? π
Generated automatically by Doxygen for globus_gass_transfer from the source code.
yeah bestie, no human author credits here β Doxygen just did its lil thing and spat this page out straight from the globus_gass_transfer source code. π€β¨ It's giving auto-generated icon behavior, and honestly? It ate. π
and that's a wrap on the whole page, fr fr π«Ά this whole thing lives in globus_gass_transfer, Version 9.5, filed under the manual section globus_gas...sfer_client(3). That's the source and the version, right there, periodt. π
no date stamp on this footer, so it's timeless, iykyk πΈ
go forth and transfer those files, main character π¦βπ
π¦ where this page comes from
- epel 10: globus-gass-transfer-doc 9.5-1.el10_2 Β· Apache-2.0
- fedora 43: globus-gass-transfer-doc 9.5-1.fc43 Β· Apache-2.0
- fedora 44: globus-gass-transfer-doc 9.5-2.fc44 Β· Apache-2.0
- ubuntu resolute: libglobus-gass-transfer-doc 9.5-1 Β· Apache-2.0
- ubuntu stonking: libglobus-gass-transfer-doc 9.5-2 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms