Unable to write to stream

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")