NGINX Upload Module - Temp Filenames to Proper Fil

Hi,

Am using NGINX Upload module to store files in my server’s disk. The
filenames are in 10 digit numbers. When I tried to figure out things,
the filename is allocated with 10 byte extra memory and a generated
value of 10 digit becomes file name.

Here are my questions / clarifications:
The files uploaded to my server are uploaded using a unique ID of 16
digits (no duplicates). Though I can parse the HTTP header for the 16
digit, I donno how to use that to store the file in that name.

  1. I tried using freeing “file->name.data” and reallocate the variable
    to store the 16 digit filename. It failed.
  2. I tried using a variable of type “ngx_str_t” to send the filename to
    the function “ngx_open_tempfile(ngx_str_t_filename, 1,
    ulcf->store_access);”. The CPU usage raised significantly and 20 out of
    30 files got uploaded.

Can anyone advice / help me in solving this problem?

  • Reuben Joseph

Posted at Nginx Forum:

On Wed, Jun 15, 2011 at 11:47:28AM -0400, kings.reuben wrote:

Hi there,

Am using NGINX Upload module to store files in my server’s disk. The
filenames are in 10 digit numbers. When I tried to figure out things,
the filename is allocated with 10 byte extra memory and a generated
value of 10 digit becomes file name.

Here are my questions / clarifications:
The files uploaded to my server are uploaded using a unique ID of 16
digits (no duplicates). Though I can parse the HTTP header for the 16
digit, I donno how to use that to store the file in that name.

Using the upload module should make it a bit easier for you to write
your own form-handling script than not using the upload module.

With a combination of upload_set_form_field and upload_pass_form_field
directives, you’ll be able to get the 10 digit filename and the 16
digit ID to your script. “rename” the one to the other in your script,
and you are done.

Can anyone advice / help me in solving this problem?

Don’t mess with the module code. proxy_pass or fastcgi_pass or something
to your own form handler and do it there.

Good luck with it,

f

Francis D. [email protected]

Hi,

Thanks for your suggestions. Name handling logic in Upload Module did
the trick.

A few lines of uncommented code caused the problem of 20 out of 30
completed file uploads.

  • Reuben Joseph

Posted at Nginx Forum: