{"id":16155203,"url":"https://github.com/guusdk/httpfileuploadcomponent","last_synced_at":"2025-10-30T12:40:53.092Z","repository":{"id":46243604,"uuid":"97119595","full_name":"guusdk/httpfileuploadcomponent","owner":"guusdk","description":"A XMPP External Component that implements XEP-0363 'HTTP File Upload'.","archived":false,"fork":false,"pushed_at":"2024-01-23T14:57:13.000Z","size":88,"stargazers_count":8,"open_issues_count":4,"forks_count":10,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-02-28T12:04:31.219Z","etag":null,"topics":["fileupload","xep-0114","xep-0363","xmpp"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/guusdk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-07-13T12:20:46.000Z","updated_at":"2024-01-19T15:57:53.000Z","dependencies_parsed_at":"2024-01-21T16:33:13.380Z","dependency_job_id":"b69a09a4-e243-40d7-9799-945f9c1ea905","html_url":"https://github.com/guusdk/httpfileuploadcomponent","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guusdk%2Fhttpfileuploadcomponent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guusdk%2Fhttpfileuploadcomponent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guusdk%2Fhttpfileuploadcomponent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guusdk%2Fhttpfileuploadcomponent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/guusdk","download_url":"https://codeload.github.com/guusdk/httpfileuploadcomponent/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243949734,"owners_count":20373650,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fileupload","xep-0114","xep-0363","xmpp"],"created_at":"2024-10-10T01:20:03.460Z","updated_at":"2025-10-30T12:40:48.053Z","avatar_url":"https://github.com/guusdk.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"HTTP File Upload Component\n========\n\nAbout\n-----\nThis application allows occupants of an [XMPP](https://xmpp.org) multi-user chat room to share data (images and such) with each-other.\n\nMore specifically, this is a [Jabber Component](https://xmpp.org/extensions/xep-0114.html) that implements [XEP-0363: HTTP File Upload](https://xmpp.org/extensions/xep-0363.html)\n\nDownload\n--------\n\nThe compiled application, as well as the source code, is available for download on the ['releases' page](https://github.com/guusdk/httpfileuploadcomponent/releases) of this project.\n\nBuilding\n--------\n\nThis project is using a Maven-based build process. To build this project yourself, ensure that the following are available on your local host:\n\n* A Java Development Kit, version 8.\n* Apache Maven 3\n\nTo build this project, invoke on a command shell:\n\n    $ mvn clean package\n\nUpon completion, the application will be available in the `target` directory.\n\nUsage\n-----\nTo run the application, execute\n\n    java -jar httpfileuploadcomponent-\u003cversionnumber\u003e-jar-with-dependencies.jar\n\nA number of arguments can (and probably should) be added. A common execution is:\n\n    java -jar httpfileuploadcomponent-\u003cversionnumber\u003e-jar-with-dependencies.jar \\\n       --xmppHost openfire1.example.org \\\n       --sharedSecret hqcUrfHtgE73FktcXwfrP\n\nThis will start the application, connect it to an XMPP server with the provided\nshared secret, and launch a webserver on a non-local interface of the machine on\nwhich the application is executed.\n\nWhen end-users should interact with the webserver using a different address, the\n``announcedWebHost`` argument can be used. This provides a convenient way to work\nwith remote proxies or port-forwarded network topologies.\n\nA full set of usage instructions are provided by adding the ``--help`` argument:\n\n    $ java -jar httpfileuploadcomponent-1.0-jar-with-dependencies.jar --help\n        usage: arguments\n            --announcedWebContextRoot \u003carg\u003e   The context root that is to be used\n                                              by the end users (when different\n                                              from webContextRoot). Defaults to\n                                              webContextRoot value.\n            --announcedWebHost \u003carg\u003e          The hostname or IP address that is\n                                              to be used by the end users (when\n                                              different from webHost). Defaults to\n                                              the webHost address.\n            --announcedWebPort \u003carg\u003e          The TCP port number that is to be\n                                              used by the end users (when\n                                              different from webPort). Defaults to\n                                              the webPort value.\n            --announcedWebProtocol \u003carg\u003e      The Protocol that is to be used by\n                                              the end users. Defaults to the\n                                              webProtocol value\n            --clamavHost \u003carg\u003e                The FQDN or IP address of the host\n                                              running the optional ClamAV malware\n                                              scanner, if any.\n            --clamavPort \u003carg\u003e                The TCP port number for the optional\n                                              ClamAV malware scanner, if any.\n            --domain \u003carg\u003e                    The domain that will be used for the\n                                              component with the XMPP domain.\n            --fileRepo \u003carg\u003e                  Store files in a directory provided\n                                              by the file system. Provide the\n                                              desired path as a value. Path must\n                                              exist.\n            -h,--help                         Displays this help text.\n            --maxFileSize \u003carg\u003e               The maximum allowed size per file,\n                                              in bytes. Use -1 to disable file\n                                              size limit. Defaults to 5242880\n                                              (five MB).\n            --sharedSecret \u003carg\u003e              The shared secret, that\n                                              authenticates this component with\n                                              the XMPP domain.\n            --tempFileRepo                    Store files in the temporary\n                                              directory provided by the file\n                                              system.\n            --webContextRoot \u003carg\u003e            The context root of the web server\n                                              through which the web frontend will\n                                              be made available. Defaults to '/',\n                                              the root context.\n            --webHost \u003carg\u003e                   The hostname or IP address on which\n                                              the webserver will be ran. Defaults\n                                              to an arbitrary, non-local address\n                                              of this machine.\n            --webPort \u003carg\u003e                   The TCP port number of the\n                                              webserver. Defaults to 12121.\n            --webProtocol \u003carg\u003e               The protocol that is used to expose\n                                              services by the webservice. Defaults\n                                              to http\n            --wildcardCORS                    Add CORS headers that define a\n                                              liberal access control regime\n                                              (wildcard origin, various headers\n                                              and methods).\n            --xmppHost \u003carg\u003e                  The FQDN or IP address (not XMPP\n                                              domain name) of the XMPP domain that\n                                              this component will connect to.\n                                              Defaults to 'localhost'.\n            --xmppPort \u003carg\u003e                  The TCP port number on the xmppHost,\n                                              to which a connection will be made.\n                                              Defaults to 5275.\n\nScanning for Malware\n--------------------\nTo facilitate virus scanning, you can configure the application to use ClamAV. ClamAV is a third-party, open source\n(GPLv2) anti-virus toolkit, available at https://www.clamav.net/\n\nTo configure this application to use ClamAV, install, configure and run clamav-daemon, the scanner daemon of ClamAV.\nConfigure the daemon in such a way that Openfire can access it via TCP.\n\nNote: ClamAV is configured with a maximum file size. Ensure that this is at least as big as the `maxFileSize` that is\nprovided as an argument to the HTTP File Upload Component.\n\nThen, start the HTTP File Upload Component application with the `clamavHost` and `clamavPort` arguments. When these are\nprovided, the application will supply each file that is being uploaded to the ClamAV daemon for scanning. A file upload\nwill fail when the ClamAV daemon could not be reached, or, obviously, when it detects malware.\n\nWhile malware scanning can offer some protection against distributing unwanted content, it has limitations. Particularly\nwhen the uploaded data is encrypted, the scanner is unlikely able to detect any malware in it.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguusdk%2Fhttpfileuploadcomponent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fguusdk%2Fhttpfileuploadcomponent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguusdk%2Fhttpfileuploadcomponent/lists"}