webbukkit / dynmap

A set of Minecraft mods that provide a real time web-based map system for various Minecraft server implementations.
https://www.reddit.com/r/Dynmap/
Apache License 2.0
2.05k stars 419 forks source link

Custom S3 URLs #3691

Open untuned opened 2 years ago

untuned commented 2 years ago

Feature Description: Allow setting a custom S3 URL in case someone is using a self-hosted solution, an example of this would be MinIO.

blacksoulgem95 commented 1 year ago

This is standard in pretty much any software that handles S3 connections, you are allowed to set up custom URLs so that you can connect your own cloud provider's S3 compatible software (eg the ones in GCP, Azure, Wasabi, Linode, Vultr...)

TSStudio commented 1 year ago

dynmap/DynmapCore/src/main/java/org/dynmap/storage/aws_s3/AWSS3MapStorage.java is the problem.
The s3 lite dependency they use does not support other endpoints.
Thus, to support other S3-compatitable services, they need to find an alternative library or rewrite by themselves.
If you do need to save files through it now, mount the bucket to your local directory.

Noorquacker commented 1 year ago

Update on this: there's an s3rework branch that eliminates the s3-lite dependency and supports custom URLs. I hate to ping unnecessarily but @mikeprimm how much of a priority is this for you right now? I don't mean to put pressure but I would also very much enjoy using my MinIO server for Dynmap :)

Noorquacker commented 1 year ago

I can’t exactly fully back up this claim because I don’t remember and I’m on mobile, but I found out that the dependency he uses is out of date and doesn’t support it, and is also hosted on his own site. I could’ve tried switching out the dependency for a more up to date version, but since the project is using a build of s3-lite on mikeprimm’s server, there was only that build available.

However, I also don’t know anything about Java dependency management, so take everything I say with a grain of salt because I have no clue what I’m doing

Jun 25, 2023 18:30:32 itaquito @.***>:

Not sure where Mikeprimm got the original dependency, but the one published on GitHub [https://github.com/linktosriram/s3-lite]does have support for custom endpoints: https://github.com/linktosriram/s3-lite/blob/ffcc851bbd5bba69f13c3d9fa1ae5395ccf60adb/api/src/main/java/io/github/linktosriram/s3lite/api/region/Region.java#L75C4-L75C4

— Reply to this email directly, view it on GitHub[https://github.com/webbukkit/dynmap/issues/3691#issuecomment-1606327027], or unsubscribe[https://github.com/notifications/unsubscribe-auth/AC6YUZBJD56J4RIPI4RLR7LXNDCZRANCNFSM5PIMVSCQ]. You are receiving this because you commented.[Tracking image][https://github.com/notifications/beacon/AC6YUZH5TOFBV4S5RB6UQCLXNDCZRA5CNFSM5PIMVSC2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOL67JV4Y.gif]

itaquito commented 1 year ago

Hey! Sorry, I deleted my original comment because I also realised that. The S3 version of the library that is hosted here https://repo.mikeprimm.com/io/github/linktosriram/s3-lite-http-client-url-connection/ simply doesn't have the of method, who knows why.

However, probably using another, more up-to-date library is better than trying to patch the current one.

joost00719 commented 1 year ago

Any ETA when this s3 rework is finished? I would like to use MinIO as well.

Marx1 commented 11 months ago

I also support this update/change. I would like to use Backblaze/cloudflare.