nextcloud / server

☁️ Nextcloud server, a safe home for all your data
https://nextcloud.com
GNU Affero General Public License v3.0
27.39k stars 4.07k forks source link

[Bug]: Argument max-parts must be an integer between 0 and 1000 #38345

Closed x4IPx closed 1 year ago

x4IPx commented 1 year ago

⚠️ This issue respects the following points: ⚠️

Bug description

When trying to upload a file, an error occurs:

Error executing "ListParts" on "https://nxtclddata.storage.yandexcloud.net/urn%3Aoid%3A222895?uploadId=0005FBDF45153A37&max-parts=10000"; AWS HTTP error: Client error: GET https://nxtclddata.storage.yandexcloud.net/urn%3Aoid%3A222895?uploadId=0005FBDF45153A37&max-parts=10000 resulted in a 400 Bad Request response:
<?xml version="1.0" encoding="UTF-8"?>

<Error><Code>InvalidArgument</Code><Message>Argument max-parts must be an integer (truncated...)
InvalidArgument (client): Argument max-parts must be an integer between 0 and 1000 - <?xml version="1.0" encoding="UTF-8"?>
<Error><Code>InvalidArgument</Code><Message>Argument max-parts must be an integer between 0 and 1000</Message><Resource>/urn%3Aoid%3A222895?uploadId=0005FBDF45153A37&max-parts=10000</Resource><RequestId>f44441a2a8b0d52d</RequestId><MaxParts>10000</MaxParts></Error>

Yandexcloud technical support said that the limit on the number of parts on their side cannot be changed. Есть ли возмодность увеличить max-parts на стороне клиента

Steps to reproduce

  1. Open the files section
  2. Drag and drop a file that weighs more than 16 megabytes
  3. We get an error

Expected behavior

The file should upload to nextcloud storage

Installation method

None

Nextcloud Server version

26

Operating system

Debian/Ubuntu

PHP engine version

PHP 8.1

Web server

None

Database engine version

MySQL

Is this bug present after an update or on a fresh install?

None

Are you using the Nextcloud Server Encryption module?

None

What user-backends are you using?

Configuration report

No response

List of activated Apps

Calendar    4.3.1   
Mail    3.0.2   
Nextcloud Office    8.0.0   
Talk    16.0.1  
Activity    2.18.0  
Brute-force settings    2.6.0   
Circles 26.0.0  
Collaborative tags  1.16.0  
Comments    1.16.0  
Contacts    5.2.0   
Contacts Interaction    1.7.0   
Dashboard   7.6.0   
Deleted files   1.16.0  
Federation  1.16.0
File sharing    1.18.0  
First run wizard    2.15.0  
Log Reader  2.11.0  
Monitoring  1.16.0  
Nextcloud announcements 1.15.0  
Notifications   2.14.0  
Password policy 1.16.0  
PDF viewer  2.7.0   
Photos  2.2.0   
Privacy 1.10.0  
Recommendations 1.5.0   
Related Resources   1.1.0-alpha1    
Right click 1.5.0   
Share by mail   1.16.0  
Support 1.9.0   
Text    3.7.2   
Update notification 1.16.0  
Usage survey    1.14.0  
User status 1.6.0   
Versions    1.19.1  
Weather status  1.6.0   
Collabora Online - Built-in CODE Server 22.5.802

Nextcloud Signing status

No response

Nextcloud Logs

{"reqId":"rBFvoAeGA8BMQL8ZteIf","level":3,"time":"2023-05-17T07:11:05+00:00","remoteAddr":"11.11.111.111","user":"v.pupkin","app":"webdav","method":"MOVE","url":"/remote.php/dav/uploads/v.pupkin/web-file-upload-3fdf0138a8e0657374c41f339f85b69a-1684307461741/.file","message":"Error executing \"ListParts\" on \"https://nxtclddata.storage.yandexcloud.net/urn%3Aoid%3A222852?uploadId=0005FBDE63F6EC27&max-parts=10000\"; AWS HTTP error: Client error: `GET https://nxtclddata.storage.yandexcloud.net/urn%3Aoid%3A222852?uploadId=0005FBDE63F6EC27&max-parts=10000` resulted in a `400 Bad Request` response:\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>InvalidArgument</Code><Message>Argument max-parts must be an integer (truncated...)\n InvalidArgument (client): Argument max-parts must be an integer between 0 and 1000 - <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>InvalidArgument</Code><Message>Argument max-parts must be an integer between 0 and 1000</Message><Resource>/urn%3Aoid%3A222852?uploadId=0005FBDE63F6EC27&amp;max-parts=10000</Resource><RequestId>b7c594bd887a728e</RequestId><MaxParts>10000</MaxParts></Error>","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36","version":"26.0.0.11","exception":{"Exception":"Aws\\S3\\Exception\\S3Exception","Message":"Error executing \"ListParts\" on \"https://nxtclddata.storage.yandexcloud.net/urn%3Aoid%3A222852?uploadId=0005FBDE63F6EC27&max-parts=10000\"; AWS HTTP error: Client error: `GET https://nxtclddata.storage.yandexcloud.net/urn%3Aoid%3A222852?uploadId=0005FBDE63F6EC27&max-parts=10000` resulted in a `400 Bad Request` response:\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>InvalidArgument</Code><Message>Argument max-parts must be an integer (truncated...)\n InvalidArgument (client): Argument max-parts must be an integer between 0 and 1000 - <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>InvalidArgument</Code><Message>Argument max-parts must be an integer between 0 and 1000</Message><Resource>/urn%3Aoid%3A222852?uploadId=0005FBDE63F6EC27&amp;max-parts=10000</Resource><RequestId>b7c594bd887a728e</RequestId><MaxParts>10000</MaxParts></Error>","Code":0,"Trace":[{"file":"/var/www/html/3rdparty/aws/aws-sdk-php/src/WrappedHttpHandler.php","line":97,"function":"parseError","class":"Aws\\WrappedHttpHandler","type":"->","args":["*** sensitive parameters replaced ***",["GuzzleHttp\\Psr7\\Request"],["Aws\\Command"],[]]},{"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php","line":204,"function":"Aws\\{closure}","class":"Aws\\WrappedHttpHandler","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php","line":169,"function":"callHandler","class":"GuzzleHttp\\Promise\\Promise","type":"::","args":[2,"*** sensitive parameters replaced ***",null]},{"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/RejectedPromise.php","line":42,"function":"GuzzleHttp\\Promise\\{closure}","class":"GuzzleHttp\\Promise\\Promise","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/TaskQueue.php","line":48,"function":"GuzzleHttp\\Promise\\{closure}","class":"GuzzleHttp\\Promise\\RejectedPromise","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/3rdparty/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php","line":159,"function":"run","class":"GuzzleHttp\\Promise\\TaskQueue","type":"->","args":[]},{"file":"/var/www/html/3rdparty/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php","line":184,"function":"tick","class":"GuzzleHttp\\Handler\\CurlMultiHandler","type":"->","args":[]},{"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php","line":248,"function":"execute","class":"GuzzleHttp\\Handler\\CurlMultiHandler","type":"->","args":[true]},{"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php","line":224,"function":"invokeWaitFn","class":"GuzzleHttp\\Promise\\Promise","type":"->","args":[]},{"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php","line":269,"function":"waitIfPending","class":"GuzzleHttp\\Promise\\Promise","type":"->","args":[]},{"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php","line":226,"function":"invokeWaitList","class":"GuzzleHttp\\Promise\\Promise","type":"->","args":[]},{"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php","line":269,"function":"waitIfPending","class":"GuzzleHttp\\Promise\\Promise","type":"->","args":[]},{"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php","line":226,"function":"invokeWaitList","class":"GuzzleHttp\\Promise\\Promise","type":"->","args":[]},{"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php","line":62,"function":"waitIfPending","class":"GuzzleHttp\\Promise\\Promise","type":"->","args":[]},{"file":"/var/www/html/3rdparty/aws/aws-sdk-php/src/AwsClientTrait.php","line":58,"function":"wait","class":"GuzzleHttp\\Promise\\Promise","type":"->","args":[]},{"file":"/var/www/html/3rdparty/aws/aws-sdk-php/src/AwsClientTrait.php","line":86,"function":"execute","class":"Aws\\AwsClient","type":"->","args":[["Aws\\Command"]]},{"file":"/var/www/html/lib/private/Files/ObjectStore/S3.php","line":76,"function":"__call","class":"Aws\\AwsClient","type":"->","args":["listParts",[["nxtclddata","urn:oid:222852","0005FBDE63F6EC27",10000]]]},{"file":"/var/www/html/apps/dav/lib/Upload/ChunkingV2Plugin.php","line":223,"function":"getMultipartUploads","class":"OC\\Files\\ObjectStore\\S3","type":"->","args":["urn:oid:222852","0005FBDE63F6EC27"]},{"file":"/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php","line":89,"function":"beforeMove","class":"OCA\\DAV\\Upload\\ChunkingV2Plugin","type":"->","args":["uploads/v.pupkin/web-file-upload-3fdf0138a8e0657374c41f339f85b69a-1684307461741/.file","files/v.pupkin/\u0414\u0438\u043b\u0435\u0440\u0441\u043a\u0438\u0439 \u041e\u0442\u0434\u0435\u043b/Ru$ (\u043d\u0435 \u0442\u0432\u043e\u0451 - \u043d\u0435 \u0437\u0430\u043b\u0435\u0437\u0430\u0439)/\u041a\u0430\u043f\u0438\u0442\u0430\u043b\u041a\u043e\u043c/\u0439\u043e\u0442\u0430 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0442 16.05.2023.xlsx"]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php","line":603,"function":"emit","class":"Sabre\\DAV\\Server","type":"->","args":["beforeMove",["uploads/v.pupkin/web-file-upload-3fdf0138a8e0657374c41f339f85b69a-1684307461741/.file","files/v.pupkin/\u0414\u0438\u043b\u0435\u0440\u0441\u043a\u0438\u0439 \u041e\u0442\u0434\u0435\u043b/Ru$ (\u043d\u0435 \u0442\u0432\u043e\u0451 - \u043d\u0435 \u0437\u0430\u043b\u0435\u0437\u0430\u0439)/\u041a\u0430\u043f\u0438\u0442\u0430\u043b\u041a\u043e\u043c/\u0439\u043e\u0442\u0430 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0442 16.05.2023.xlsx"]]},{"file":"/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php","line":89,"function":"httpMove","class":"Sabre\\DAV\\CorePlugin","type":"->","args":[["Sabre\\HTTP\\Request"],["Sabre\\HTTP\\Response"]]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":472,"function":"emit","class":"Sabre\\DAV\\Server","type":"->","args":["method:MOVE",[["Sabre\\HTTP\\Request"],["Sabre\\HTTP\\Response"]]]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":253,"function":"invokeMethod","class":"Sabre\\DAV\\Server","type":"->","args":[["Sabre\\HTTP\\Request"],["Sabre\\HTTP\\Response"]]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":321,"function":"start","class":"Sabre\\DAV\\Server","type":"->","args":[]},{"file":"/var/www/html/apps/dav/lib/Server.php","line":366,"function":"exec","class":"Sabre\\DAV\\Server","type":"->","args":[]},{"file":"/var/www/html/apps/dav/appinfo/v2/remote.php","line":35,"function":"exec","class":"OCA\\DAV\\Server","type":"->","args":[]},{"file":"/var/www/html/remote.php","line":171,"args":["/var/www/html/apps/dav/appinfo/v2/remote.php"],"function":"require_once"}],"File":"/var/www/html/3rdparty/aws/aws-sdk-php/src/WrappedHttpHandler.php","Line":195,"Previous":{"Exception":"GuzzleHttp\\Exception\\ClientException","Message":"Client error: `GET https://nxtclddata.storage.yandexcloud.net/urn%3Aoid%3A222852?uploadId=0005FBDE63F6EC27&max-parts=10000` resulted in a `400 Bad Request` response:\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>InvalidArgument</Code><Message>Argument max-parts must be an integer (truncated...)\n","Code":400,"Trace":[{"file":"/var/www/html/3rdparty/guzzlehttp/guzzle/src/Middleware.php","line":69,"function":"create","class":"GuzzleHttp\\Exception\\RequestException","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php","line":204,"function":"GuzzleHttp\\{closure}","class":"GuzzleHttp\\Middleware","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php","line":153,"function":"callHandler","class":"GuzzleHttp\\Promise\\Promise","type":"::","args":[1,"*** sensitive parameters replaced ***","*** sensitive parameters replaced ***"]},{"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/TaskQueue.php","line":48,"function":"GuzzleHttp\\Promise\\{closure}","class":"GuzzleHttp\\Promise\\Promise","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/3rdparty/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php","line":159,"function":"run","class":"GuzzleHttp\\Promise\\TaskQueue","type":"->","args":[]},{"file":"/var/www/html/3rdparty/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php","line":184,"function":"tick","class":"GuzzleHttp\\Handler\\CurlMultiHandler","type":"->","args":[]},{"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php","line":248,"function":"execute","class":"GuzzleHttp\\Handler\\CurlMultiHandler","type":"->","args":[true]},{"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php","line":224,"function":"invokeWaitFn","class":"GuzzleHttp\\Promise\\Promise","type":"->","args":[]},{"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php","line":269,"function":"waitIfPending","class":"GuzzleHttp\\Promise\\Promise","type":"->","args":[]},{"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php","line":226,"function":"invokeWaitList","class":"GuzzleHttp\\Promise\\Promise","type":"->","args":[]},{"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php","line":269,"function":"waitIfPending","class":"GuzzleHttp\\Promise\\Promise","type":"->","args":[]},{"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php","line":226,"function":"invokeWaitList","class":"GuzzleHttp\\Promise\\Promise","type":"->","args":[]},{"file":"/var/www/html/3rdparty/guzzlehttp/promises/src/Promise.php","line":62,"function":"waitIfPending","class":"GuzzleHttp\\Promise\\Promise","type":"->","args":[]},{"file":"/var/www/html/3rdparty/aws/aws-sdk-php/src/AwsClientTrait.php","line":58,"function":"wait","class":"GuzzleHttp\\Promise\\Promise","type":"->","args":[]},{"file":"/var/www/html/3rdparty/aws/aws-sdk-php/src/AwsClientTrait.php","line":86,"function":"execute","class":"Aws\\AwsClient","type":"->","args":[["Aws\\Command"]]},{"file":"/var/www/html/lib/private/Files/ObjectStore/S3.php","line":76,"function":"__call","class":"Aws\\AwsClient","type":"->","args":["listParts",[["nxtclddata","urn:oid:222852","0005FBDE63F6EC27",10000]]]},{"file":"/var/www/html/apps/dav/lib/Upload/ChunkingV2Plugin.php","line":223,"function":"getMultipartUploads","class":"OC\\Files\\ObjectStore\\S3","type":"->","args":["urn:oid:222852","0005FBDE63F6EC27"]},{"file":"/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php","line":89,"function":"beforeMove","class":"OCA\\DAV\\Upload\\ChunkingV2Plugin","type":"->","args":["uploads/v.pupkin/web-file-upload-3fdf0138a8e0657374c41f339f85b69a-1684307461741/.file","files/v.pupkin/\u0414\u0438\u043b\u0435\u0440\u0441\u043a\u0438\u0439 \u041e\u0442\u0434\u0435\u043b/Ru$ (\u043d\u0435 \u0442\u0432\u043e\u0451 - \u043d\u0435 \u0437\u0430\u043b\u0435\u0437\u0430\u0439)/\u041a\u0430\u043f\u0438\u0442\u0430\u043b\u041a\u043e\u043c/\u0439\u043e\u0442\u0430 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0442 16.05.2023.xlsx"]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/CorePlugin.php","line":603,"function":"emit","class":"Sabre\\DAV\\Server","type":"->","args":["beforeMove",["uploads/v.pupkin/web-file-upload-3fdf0138a8e0657374c41f339f85b69a-1684307461741/.file","files/v.pupkin/\u0414\u0438\u043b\u0435\u0440\u0441\u043a\u0438\u0439 \u041e\u0442\u0434\u0435\u043b/Ru$ (\u043d\u0435 \u0442\u0432\u043e\u0451 - \u043d\u0435 \u0437\u0430\u043b\u0435\u0437\u0430\u0439)/\u041a\u0430\u043f\u0438\u0442\u0430\u043b\u041a\u043e\u043c/\u0439\u043e\u0442\u0430 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0442 16.05.2023.xlsx"]]},{"file":"/var/www/html/3rdparty/sabre/event/lib/WildcardEmitterTrait.php","line":89,"function":"httpMove","class":"Sabre\\DAV\\CorePlugin","type":"->","args":[["Sabre\\HTTP\\Request"],["Sabre\\HTTP\\Response"]]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":472,"function":"emit","class":"Sabre\\DAV\\Server","type":"->","args":["method:MOVE",[["Sabre\\HTTP\\Request"],["Sabre\\HTTP\\Response"]]]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":253,"function":"invokeMethod","class":"Sabre\\DAV\\Server","type":"->","args":[["Sabre\\HTTP\\Request"],["Sabre\\HTTP\\Response"]]},{"file":"/var/www/html/3rdparty/sabre/dav/lib/DAV/Server.php","line":321,"function":"start","class":"Sabre\\DAV\\Server","type":"->","args":[]},{"file":"/var/www/html/apps/dav/lib/Server.php","line":366,"function":"exec","class":"Sabre\\DAV\\Server","type":"->","args":[]},{"file":"/var/www/html/apps/dav/appinfo/v2/remote.php","line":35,"function":"exec","class":"OCA\\DAV\\Server","type":"->","args":[]},{"file":"/var/www/html/remote.php","line":171,"args":["/var/www/html/apps/dav/appinfo/v2/remote.php"],"function":"require_once"}],"File":"/var/www/html/3rdparty/guzzlehttp/guzzle/src/Exception/RequestException.php","Line":113},"message":"Error executing \"ListParts\" on \"https://nxtclddata.storage.yandexcloud.net/urn%3Aoid%3A222852?uploadId=0005FBDE63F6EC27&max-parts=10000\"; AWS HTTP error: Client error: `GET https://nxtclddata.storage.yandexcloud.net/urn%3Aoid%3A222852?uploadId=0005FBDE63F6EC27&max-parts=10000` resulted in a `400 Bad Request` response:\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>InvalidArgument</Code><Message>Argument max-parts must be an integer (truncated...)\n InvalidArgument (client): Argument max-parts must be an integer between 0 and 1000 - <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>InvalidArgument</Code><Message>Argument max-parts must be an integer between 0 and 1000</Message><Resource>/urn%3Aoid%3A222852?uploadId=0005FBDE63F6EC27&amp;max-parts=10000</Resource><RequestId>b7c594bd887a728e</RequestId><MaxParts>10000</MaxParts></Error>","exception":{},"CustomMessage":"Error executing \"ListParts\" on \"https://nxtclddata.storage.yandexcloud.net/urn%3Aoid%3A222852?uploadId=0005FBDE63F6EC27&max-parts=10000\"; AWS HTTP error: Client error: `GET https://nxtclddata.storage.yandexcloud.net/urn%3Aoid%3A222852?uploadId=0005FBDE63F6EC27&max-parts=10000` resulted in a `400 Bad Request` response:\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>InvalidArgument</Code><Message>Argument max-parts must be an integer (truncated...)\n InvalidArgument (client): Argument max-parts must be an integer between 0 and 1000 - <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>InvalidArgument</Code><Message>Argument max-parts must be an integer between 0 and 1000</Message><Resource>/urn%3Aoid%3A222852?uploadId=0005FBDE63F6EC27&amp;max-parts=10000</Resource><RequestId>b7c594bd887a728e</RequestId><MaxParts>10000</MaxParts></Error>"}}

Additional info

No response

joshtrichards commented 1 year ago

Fixed in #37534 in (upcoming) v27 and backported fix (in progress but pending) in #37776 for v26.