Hello, I encountered when uploading files larger than 512M on the server
“Unable to write to stream”. I have adjusted the php.ini ,nginx.conf and .htaccessi files according to the manual
# /etc/php7/php.ini
...
upload_max_filesize = 16G
post_max_size = 16G
max_file_uploads = 20
upload_tmp_dir = /usr/share/webapps/nextcloud/data/upload-tmp
post_max_size = 10800M
max_execution_time = 7200
max_input_time = 7200
...
# /etc/nginx/conf.d/nextcloud.conf
...
client_max_body_size 10240M;
fastcgi_buffers 64 4K;
...
But it didn’t solve the problem. I think the ram is not enough, so I expanded the ram from 1g to 2g. At this time, files smaller than 900MB are successfully uploaded, and 1G files are still Unable to write to stream. What should I do next?
Software version
linux 5.10.15-arch1-1
php PHP 7.4.15 (cli)
nginx nginx/1.18.0
nextcloud 20.0.7
And error message
Sabre\DAV\Exception: Unable to write to stream
/usr/share/webapps/nextcloud/apps/dav/lib/Connector/Sabre/File.php - line 260:
OCA\DAV\Connector\Sabre\File->convertToSabreException()
/usr/share/webapps/nextcloud/apps/dav/lib/Connector/Sabre/Directory.php - line 156:
OCA\DAV\Connector\Sabre\File->put()
/usr/share/webapps/nextcloud/3rdparty/sabre/dav/lib/DAV/Tree.php - line 311:
OCA\DAV\Connector\Sabre\Directory->createFile()
/usr/share/webapps/nextcloud/3rdparty/sabre/dav/lib/DAV/Tree.php - line 135:
Sabre\DAV\Tree->copyNode()
/usr/share/webapps/nextcloud/3rdparty/sabre/dav/lib/DAV/Tree.php - line 167:
Sabre\DAV\Tree->copy()
/usr/share/webapps/nextcloud/apps/dav/lib/Upload/ChunkingPlugin.php - line 95:
Sabre\DAV\Tree->move()
/usr/share/webapps/nextcloud/apps/dav/lib/Upload/ChunkingPlugin.php - line 77:
OCA\DAV\Upload\ChunkingPlugin->performMove()
/usr/share/webapps/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.php - line 89:
OCA\DAV\Upload\ChunkingPlugin->beforeMove()
/usr/share/webapps/nextcloud/3rdparty/sabre/dav/lib/DAV/CorePlugin.php - line 632:
Sabre\DAV\Server->emit()
/usr/share/webapps/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.php - line 89:
Sabre\DAV\CorePlugin->httpMove()
/usr/share/webapps/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 474:
Sabre\DAV\Server->emit()
/usr/share/webapps/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 251:
Sabre\DAV\Server->invokeMethod()
/usr/share/webapps/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 319:
Sabre\DAV\Server->start()
/usr/share/webapps/nextcloud/apps/dav/lib/Server.php - line 332:
Sabre\DAV\Server->exec()
/usr/share/webapps/nextcloud/apps/dav/appinfo/v2/remote.php - line 35:
OCA\DAV\Server->exec()
/usr/share/webapps/nextcloud/remote.php - line 167:
require_once("/usr/share/ ... p")
造成的原因是RuntimeException: Unable to write to stream
/usr/share/webapps/nextcloud/3rdparty/guzzlehttp/psr7/src/functions.php - line 382:
GuzzleHttp\Psr7\Stream->write()
/usr/share/webapps/nextcloud/3rdparty/aws/aws-sdk-php/src/S3/MultipartUploader.php - line 117:
GuzzleHttp\Psr7\copy_to_stream()
/usr/share/webapps/nextcloud/3rdparty/aws/aws-sdk-php/src/Multipart/AbstractUploader.php - line 53:
Aws\S3\MultipartUploader->createPart()
/usr/share/webapps/nextcloud/3rdparty/aws/aws-sdk-php/src/CommandPool.php - line 55:
Aws\Multipart\AbstractUploader->getUploadCommands()
<<closure>>
Aws\CommandPool->Aws\{closure}("*** sensiti ... *")
/usr/share/webapps/nextcloud/3rdparty/guzzlehttp/promises/src/EachPromise.php - line 187:
Generator->next()
/usr/share/webapps/nextcloud/3rdparty/guzzlehttp/promises/src/EachPromise.php - line 141:
GuzzleHttp\Promise\EachPromise->advanceIterator()
/usr/share/webapps/nextcloud/3rdparty/guzzlehttp/promises/src/EachPromise.php - line 77:
GuzzleHttp\Promise\EachPromise->refillPending()
/usr/share/webapps/nextcloud/3rdparty/aws/aws-sdk-php/src/CommandPool.php - line 79:
GuzzleHttp\Promise\EachPromise->promise()
/usr/share/webapps/nextcloud/3rdparty/aws/aws-sdk-php/src/Multipart/AbstractUploadManager.php - line 132:
Aws\CommandPool->promise()
<<closure>>
Aws\Multipart\AbstractUploadManager->Aws\Multipart\{closure}("*** sensiti ... *")
/usr/share/webapps/nextcloud/3rdparty/guzzlehttp/promises/src/Coroutine.php - line 122:
Generator->send()
/usr/share/webapps/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php - line 203:
GuzzleHttp\Promise\Coroutine->_handleSuccess()
/usr/share/webapps/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php - line 156:
GuzzleHttp\Promise\Promise::callHandler()
/usr/share/webapps/nextcloud/3rdparty/guzzlehttp/promises/src/TaskQueue.php - line 47:
GuzzleHttp\Promise\Promise::GuzzleHttp\Promise\{closure}("*** sensiti ... *")
/usr/share/webapps/nextcloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php - line 118:
GuzzleHttp\Promise\TaskQueue->run()
/usr/share/webapps/nextcloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php - line 145:
GuzzleHttp\Handler\CurlMultiHandler->tick()
/usr/share/webapps/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php - line 246:
GuzzleHttp\Handler\CurlMultiHandler->execute()
/usr/share/webapps/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php - line 223:
GuzzleHttp\Promise\Promise->invokeWaitFn()
/usr/share/webapps/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php - line 267:
GuzzleHttp\Promise\Promise->waitIfPending()
/usr/share/webapps/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php - line 225:
GuzzleHttp\Promise\Promise->invokeWaitList()
/usr/share/webapps/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php - line 267:
GuzzleHttp\Promise\Promise->waitIfPending()
/usr/share/webapps/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php - line 225:
GuzzleHttp\Promise\Promise->invokeWaitList()
/usr/share/webapps/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php - line 62:
GuzzleHttp\Promise\Promise->waitIfPending()
/usr/share/webapps/nextcloud/3rdparty/guzzlehttp/promises/src/Coroutine.php - line 65:
GuzzleHttp\Promise\Promise->wait()
/usr/share/webapps/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php - line 246:
GuzzleHttp\Promise\Coroutine->GuzzleHttp\Promise\{closure}("*** sensiti ... *")
/usr/share/webapps/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php - line 223:
GuzzleHttp\Promise\Promise->invokeWaitFn()
/usr/share/webapps/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php - line 267:
GuzzleHttp\Promise\Promise->waitIfPending()
/usr/share/webapps/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php - line 225:
GuzzleHttp\Promise\Promise->invokeWaitList()
/usr/share/webapps/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php - line 62:
GuzzleHttp\Promise\Promise->waitIfPending()
/usr/share/webapps/nextcloud/3rdparty/aws/aws-sdk-php/src/Multipart/AbstractUploadManager.php - line 83:
GuzzleHttp\Promise\Promise->wait()
/usr/share/webapps/nextcloud/lib/private/Files/ObjectStore/S3ObjectTrait.php - line 97:
Aws\Multipart\AbstractUploadManager->upload()
/usr/share/webapps/nextcloud/lib/private/Files/ObjectStore/ObjectStoreStorage.php - line 486:
OC\Files\ObjectStore\S3->writeObject()
/usr/share/webapps/nextcloud/lib/private/Files/Storage/Wrapper/Wrapper.php - line 631:
OC\Files\ObjectStore\ObjectStoreStorage->writeStream()
/usr/share/webapps/nextcloud/lib/private/Files/Storage/Wrapper/Wrapper.php - line 631:
OC\Files\Storage\Wrapper\Wrapper->writeStream()
/usr/share/webapps/nextcloud/apps/dav/lib/Connector/Sabre/File.php - line 207:
OC\Files\Storage\Wrapper\Wrapper->writeStream()
/usr/share/webapps/nextcloud/apps/dav/lib/Connector/Sabre/Directory.php - line 156:
OCA\DAV\Connector\Sabre\File->put()
/usr/share/webapps/nextcloud/3rdparty/sabre/dav/lib/DAV/Tree.php - line 311:
OCA\DAV\Connector\Sabre\Directory->createFile()
/usr/share/webapps/nextcloud/3rdparty/sabre/dav/lib/DAV/Tree.php - line 135:
Sabre\DAV\Tree->copyNode()
/usr/share/webapps/nextcloud/3rdparty/sabre/dav/lib/DAV/Tree.php - line 167:
Sabre\DAV\Tree->copy()
/usr/share/webapps/nextcloud/apps/dav/lib/Upload/ChunkingPlugin.php - line 95:
Sabre\DAV\Tree->move()
/usr/share/webapps/nextcloud/apps/dav/lib/Upload/ChunkingPlugin.php - line 77:
OCA\DAV\Upload\ChunkingPlugin->performMove()
/usr/share/webapps/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.php - line 89:
OCA\DAV\Upload\ChunkingPlugin->beforeMove()
/usr/share/webapps/nextcloud/3rdparty/sabre/dav/lib/DAV/CorePlugin.php - line 632:
Sabre\DAV\Server->emit()
/usr/share/webapps/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.php - line 89:
Sabre\DAV\CorePlugin->httpMove()
/usr/share/webapps/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 474:
Sabre\DAV\Server->emit()
/usr/share/webapps/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 251:
Sabre\DAV\Server->invokeMethod()
/usr/share/webapps/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php - line 319:
Sabre\DAV\Server->start()
/usr/share/webapps/nextcloud/apps/dav/lib/Server.php - line 332:
Sabre\DAV\Server->exec()
/usr/share/webapps/nextcloud/apps/dav/appinfo/v2/remote.php - line 35:
OCA\DAV\Server->exec()
/usr/share/webapps/nextcloud/remote.php - line 167:
require_once("/usr/share/ ... p")