On 9/17/20 8:07 PM, wjoe wrote:

Not a reply to this post in particular but to all the ones I've read so far.

If I understand correctly. Vibe parses the form data and writes all files to disk. Where to ?

See the code here: https://github.com/vibe-d/vibe.d/blob/ebebfa827f568cc9bced4bec2b66edc043a8adf7/inet/vibe/inet/webform.d#L311

Can I configure it ? I don't want libraries to just write data to my file systems without me setting this up. Nowhere did I find this behavior described in the docs.

No, not at the moment. Which is why I was saying, it could be an enhancement request to vibe.

And if not, how is data processed with a 10mb file upload followed by a few number fields ?

All the data is processed before the accessor to the form data or the file data. It HAS to be this way, as the data is still on the incoming network socket.

It needs to read all of the file data to get to the other data fields, doesn't it ?

Yes


I'm sorry this is completely counter intuitive. I can understand the memory/security risks and all but I have no intention to hack, DOS or however else disrupt my private server in my private network with garbage data. I just want to get the data in a byte[].

Again, enhancement request needed. The code currently is hard-coded to write to disk.


Why does the lib not simply reject files that are unreasonably (configurable) big ?

If you had 1000 requests being processed simultaneously, and each of those requests provided 10MB files, then you now need potentially 10GB of RAM to hold those requests. This doesn't scale when the application is unknown to vibe.

But again, solved with an enhancement that allows you to process the data in your code. I'll file the enhancement request for you, as I think it's a nice addition.

Writing files to disk in order to then needing to copy them somewhere else or to read them back into memory for further processing sounds, above all else, incredibly inefficient.

Agreed. In my case, it was an actual copy, as the location of the stored data was on a different filesystem than the temporary files.

I might not even want to keep the file and drop it.

Yep, it's a waste in that case.


I guess it's no problem to parse the data myself, but then what's the point in using a framework ?

Agreed.

Are there other frameworks besides vibe that can do what I want ?

In D, I'm not sure what the other frameworks do. I believe there are others if you search on code.dlang.org, you should be able to find some.

I'm sorry for the rant, developing this kind of software is a pain in the drain and stresses me out to no end. It sucked hard in the past with php and decades later with python, ruby, D, you name it it still sucks ;)

web development sucks in general ;) Yet, we all still do it.

-Steve
  • vibe.d: How to get the conent... wjoe via Digitalmars-d-learn
    • Re: vibe.d: How to get t... WebFreak001 via Digitalmars-d-learn
      • Re: vibe.d: How to g... wjoe via Digitalmars-d-learn
        • Re: vibe.d: How ... Steven Schveighoffer via Digitalmars-d-learn
          • Re: vibe.d: ... aberba via Digitalmars-d-learn
            • Re: vib... Steven Schveighoffer via Digitalmars-d-learn
              • Re:... wjoe via Digitalmars-d-learn
                • ... Atwork via Digitalmars-d-learn
                • ... wjoe via Digitalmars-d-learn
                • ... Steven Schveighoffer via Digitalmars-d-learn
                • ... Steven Schveighoffer via Digitalmars-d-learn
                • ... wjoe via Digitalmars-d-learn
                • ... ikod via Digitalmars-d-learn
                • ... ikod via Digitalmars-d-learn
                • ... Steven Schveighoffer via Digitalmars-d-learn
                • ... ikod via Digitalmars-d-learn
                • ... wjoe via Digitalmars-d-learn
                • ... aberba via Digitalmars-d-learn
                • ... Adam D. Ruppe via Digitalmars-d-learn
                • ... wjoe via Digitalmars-d-learn

Reply via email to