nginx-upload-progress-module icon indicating copy to clipboard operation
nginx-upload-progress-module copied to clipboard

Using the same x-progress-id: error or warning ?

Open erlo opened this issue 13 years ago • 3 comments

Hello,

I'm trying to integrate the upload-progress-module (with upload-module) in your system. In case the client initiate a POST using the same x-progress-id, the module always return a "NGX_HTTP_INTERNAL_SERVER_ERROR".

Is it possible, without changing the code, the bypass the error ?

If there was a problem on the client side (same x-progress-id used twice...) I would like to process the upload without error, even if the progression will not be available ?

What is the best way to do it ? If people upload large data in your case it should be a bad idea at the end to display an error just because of the x-progress-id...

erlo avatar May 11 '12 09:05 erlo

I'm sorry, but as seen from the server you can't ask for 2 uploads to have the same X-Progress-ID at the exact same time, hence I prefer to return an error (even though the upload would succeed).

You probably can generate X-Progress-ID that have a very low probability of collision (ie a MD5 or SHA sum of some random information).

You can modify the upload-progress module to return NGX_DECLINED instead of NGX_HTTP_INTERNAL_SERVER_ERROR when duplicate X-Progress-ID are found, that will accomplish what you want. But I don't think it should be part of the "official" distribution. I might accept a patch providing an option that would change this behavior (as long as the default is to error), though.

masterzen avatar May 11 '12 13:05 masterzen

First, thank you for your answer.

Actually we have noticed that browser can do nasty things, such as automatically replay the post action immediatly after a network failure (for example), in this case, I want to consider the last post as "correct" action...

I'm going to play with the NGX_DECLINED instead of NGX_HTTP_INTERNAL_SERVER_ERROR...

If I consider my code a quite "smart", I will suggest you the patch :)

Thanks!

Erwan

2012/5/11 Brice Figureau [email protected]:

I'm sorry, but as seen from the server you can't ask for 2 uploads to have the same X-Progress-ID at the exact same time, hence I prefer to return an error (even though the upload would succeed).

You probably can generate X-Progress-ID that have a very low probability of collision (ie a MD5 or SHA sum of some random information).

You can modify the upload-progress module to return NGX_DECLINED instead of NGX_HTTP_INTERNAL_SERVER_ERROR when duplicate X-Progress-ID are found, that will accomplish what you want. But I don't think it should be part of the "official" distribution. I might accept a patch providing an option that would change this behavior (as long as the default is to error), though.


Reply to this email directly or view it on GitHub: https://github.com/masterzen/nginx-upload-progress-module/issues/24#issuecomment-5650986

erlo avatar May 11 '12 14:05 erlo

Hello,

Here is a small patch to give the possibility to ignore a tracking id already register. It enable a new configuration setting flag "upload_progress_noerror_if_exist".

If set to "on", don't raise error when the same tracking id is found If set to "off", default behavior, raise an INTERNAL_SERVER_ERROR.

Default value is "off".

I will be happy if you enable this feature in future release :)

I'm not familiar with gitub, there is probably a better way to transmit a patch, but here is a gist of the patch...

https://gist.github.com/2694514

Regards.

erlo avatar May 14 '12 15:05 erlo