πΎ Archived View for gemi.dev βΊ gemini-mailing-list βΊ 000473.gmi captured on 2024-05-26 at 16:01:03. Gemini links have been rewritten to link to archived content
β¬ οΈ Previous capture (2023-12-28)
-=-=-=-=-=-=-
So, I want to make an app to view and edit gemini content. My objective is to create a blogging platform alternative to medium.com, with gemini. I don't understand how I'm suppesed to upload things when using gemini. By reading the mailing list archive, I've found the following ways: - Gemini input (max input of 1024B - sizeof(url)) - Titan - Dioscuri - Inimeg - FTP, SFTP, Rsync, ... (Implementing these protocols in the app requires too much work) Is there a recommended way to do this? Or should I just look away, implement everything in http and offer a gemini proxy to read blog posts?
On 11/16/20 12:03 PM, Lorenzo Miglietta wrote: > Is there a recommended way to do this? Or should I just look away, > implement everything in http and offer a gemini proxy to read blog > posts? The recommended way is to use another protocol for uploading content. You can choose which one works best for your needs. Those solutions you mentioned in the email are all valid in their own way, even including HTTP, but you can use whatever is easiest for you. Someone recently shared a post-via-email solution, for instance. Good luck with your app!
> So, I want to make an app to view and edit gemini content. My > objective > is to create a blogging platform alternative to medium.com, with > gemini. I was also thinking about this. I think, if I were to do this, I would probably settle on one of the already established standards, probably SFTP or E-Mail. For E-Mail, you could prepare something to your liking in the App and then use a mailto:-Link to send it over to the server, for SFTP you could use an already available library and put an ED25519 pubkey on the server using Gemini input. This is especially cool, because it might work with already existing servers. Thinking about it, if you are going to build an App around a centralized service anyways, you could also just build a REST API and use that one, this is also what HTTP was built for
> I don't understand how I'm suppesed to upload things when using gemini. > By reading the mailing list archive, I've found the following ways: > - Gemini input (max input of 1024B - sizeof(url)) > - Titan > - Dioscuri > - Inimeg > - FTP, SFTP, Rsync, ... (Implementing these protocols in the app > requires too much work) > > Is there a recommended way to do this? Or should I just look away, > implement everything in http and offer a gemini proxy to read blog > posts? Consider that another solution that would be simple for your Gemini app to handle natively would be to upload your files to a file sharing service like Nextcloud or Lufi and then to use Gemini response code 10 to prompt your user for the URL of the file they want your app to import. Your Gemini server can then make the necessary connection to the file sharing service to download the file and do whatever it wants with it before sending a response back to your user. Nextcloud: https://nextcloud.com/ Lufi: https://framagit.org/fiat-tux/hat-softwares/lufi If you want to test it out quickly, there's a public Lufi instance running on Disroot's servers (please don't abuse it): https://upload.disroot.org/ Happy hacking, Gary -- GPG Key ID: 7BC158ED Use `gpg --search-keys lambdatronic' to find me Protect yourself from surveillance: https://emailselfdefense.fsf.org ======================================================================= () ascii ribbon campaign - against html e-mail /\ www.asciiribbon.org - against proprietary attachments Why is HTML email a security nightmare? See https://useplaintext.email/ Please avoid sending me MS-Office attachments. See http://www.gnu.org/philosophy/no-word-attachments.html
> Consider that another solution that would be simple for your Gemini > app > to handle natively would be to upload your files to a file sharing > service like Nextcloud or Lufi and then to use Gemini response code > 10 > to prompt your user for the URL of the file they want your app to > import. Thanks for the idea, but I wanted to integrate uploading in my app. Telling the user to upload a file into another service temporarily is more of a workaround than a real solution. >
Hi, I compiled a bunch of arguments on this subject in two posts on my gemlog not long ago: gemini://tilde.team/~ew0k/gemini-and-post.gmi gemini://tilde.team/~ew0k/gemini-and-post-part2.gmi The tl;dr of it is that there is no standardized way of posting/uploading content in geminispace, and you are encouraged to design a solution that works best for your use case. Cheers, ew0k
Minor correction: Titan is a PUT protocol that can send something to a server. Dioscuri is a true POST protocol: you send something to the server, and then you get either a response or an URL pointing to the true response (thanks to the magic of MIME-type message/external-body). Dioscuri isn't really intended as a file-upload protocol, though it could be used that way, but as an application protocol for requests that won't fit into an URL. It is in no way intended for use with forms, but with specialized clients. On Thu, Nov 19, 2020 at 12:56 PM Bj?rn W?rmedal <bjorn.warmedal at gmail.com> wrote: > Hi, > > I compiled a bunch of arguments on this subject in two posts on my > gemlog not long ago: > gemini://tilde.team/~ew0k/gemini-and-post.gmi > gemini://tilde.team/~ew0k/gemini-and-post-part2.gmi > > The tl;dr of it is that there is no standardized way of > posting/uploading content in geminispace, and you are encouraged to > design a solution that works best for your use case. > > Cheers, > ew0k > -------------- next part -------------- An HTML attachment was scrubbed... URL: <https://lists.orbitalfox.eu/archives/gemini/attachments/20201120/70f9 5ba0/attachment.htm>
In-Reply-To: <f749c381ad9f4aaa9f44866ad74bd4a9143939dd.camel at gmail.com> > Thanks for the idea, but I wanted to integrate uploading in my app. Probably not a perfect solution, but one thing I'm going with (for a text-editing application) is having a mailto link for the user to email me. Then, the server just needs to read the email through imap. Assuming your expected uploads are not larger than the email servers can handle, this should work fine. (You can also check the email address against the email address from the user's certificate for validation) => https://git.sr.ht/~earboxer/prosongsa/commit/61ad5c86 Here's a little example I coded up in PHP for editing text files, if you're curious. -Zach
> (You can also check the email address against the email address from the user's certificate > for validation) You can offer the email address from the certificate as a default for the reader to confirm, refuse, or replace as linked to some notion of an account, but it's necessary to have explicit permission to link the identity of a user to that information... and you shouldn't make any positive assumption about user supplied data, including unsigned or self-signed certificates Also, don't trust the "From" address in an email. Insist on end to end encryption if the content transmitted is actually sensitive. If the contents aren't actually sensitive, processing is reversible, and volume is sufficiently low, then you can use a token inserted in either the subject or the from address to transmit session information. In either case, a receipt is required for email transactions Chris
> I compiled a bunch of arguments on this subject in two posts on my > gemlog not long ago: > gemini://tilde.team/~ew0k/gemini-and-post.gmi > gemini://tilde.team/~ew0k/gemini-and-post-part2.gmi Thank you, these are really great resources!
On Fri, 20 Nov 2020 at 19:56, John Cowan <cowan at ccil.org> wrote: > > Minor correction: > > Titan is a PUT protocol that can send something to a server. Dioscuri is a true POST protocol: you send something to the server, and then you get either a response or an URL pointing to the true response (thanks to the magic of MIME-type message/external-body). Dioscuri isn't really intended as a file-upload protocol, though it could be used that way, but as an application protocol for requests that won't fit into an URL. It is in no way intended for use with forms, but with specialized clients. Thank you! I just thought of them both as "ways to send data to the server", but there is definitely a point to clarifying the difference. I've added a clarification to my finishing post on the subject: gemini://tilde.team/~ew0k/gemini-and-post-part2.gmi Cheers, ew0k
---
Previous Thread: [ANN] Aquarius, a PHP app framework for Gemini CGI