Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: Nextcloud tries to CreateBucket even when auto-create is disabled using S3 as primary storage #36427

Closed
6 of 9 tasks
EchedelleLR opened this issue Jan 29, 2023 · 13 comments
Labels
0. Needs triage Pending check for reproducibility or if it fits our roadmap 25-feedback bug feature: object storage

Comments

@EchedelleLR
Copy link

EchedelleLR commented Jan 29, 2023

⚠️ This issue respects the following points: ⚠️

  • This is a bug, not a question or a configuration/webserver/proxy issue.
  • This issue is not already reported on Github (I've searched it).
  • Nextcloud Server is up to date. See Maintenance and Release Schedule for supported versions.
  • Nextcloud Server is running on 64bit capable CPU, PHP and OS.
  • I agree to follow Nextcloud's Code of Conduct.

Bug description

Nextcloud tries to CreateBucket even when auto-create is disabled using S3 as primary storage.

I am using S3 compatible storage using StorJ. It seems that after a proper configuration as suggested in the official Nextcloud documentation, the connection is not performed finishing in two issues logged:

  • Access denied while trying to create a bucket
  • Access denied while trying to put an object

I don't find a real answer to why both are tried and the second fail.

My current configuration sets auto creation to false, but it tries.

I didn't give permission to create the bucket because that permission doesn't exist in StorJ end unless I give permission to access to everything and the bucket is, in fact, already created and the setting to auto creation set to false.

However, ignoring that fact for a moment, why does the upload of an object fails too? This works perfectly using other S3 compatible software such as GoToSocial and Matrix Synapse. I don't really understand.

Steps to reproduce

  1. Install Nextcloud from scratch on 25.0.3.2 version
  2. Create a bucket at StorJ
  3. Set permissions to do everything just on that bucket
  4. Configure as followed:
'objectstore' => [
    'class' => '\\OC\\Files\\ObjectStore\\S3',
    'arguments' => [
      'bucket' => 'vis4valentine-cloud',
      'autocreate' => false,
      'key' => 'XXX',
      'secret' => 'XXXXX',
      'hostname' => 'gateway.storjshare.io',
      'port' => 443,
      'use_ssl' => true,
      'region' => 'optional',
      // required for some non Amazon S3 implementations
      'use_path_style'=>true,
    ],
  ],
  1. Attempt to load Nextcloud interface and see error loading
  2. Check that the log on server includes last two JSON lines telling that failed to create the bucket and upload an object because access was denied.

Expected behavior

Creation of the bucket is not tried and uploading of an object is performed correctly.

Installation method

Community Manual installation with Archive

Operating system

Debian/Ubuntu

PHP engine version

PHP 8.1

Web server

Apache (supported)

Database engine version

MariaDB

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

Fresh Nextcloud Server install

Are you using the Nextcloud Server Encryption module?

None

What user-backends are you using?

  • Default user-backend (database)
  • LDAP/ Active Directory
  • SSO - SAML
  • Other

Configuration report

{
    "system": {
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "cloud.vis4valentine.com"
        ],
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "mysql",
        "version": "25.0.3.2",
        "overwrite.cli.url": "https:\/\/cloud.vis4valentine.com",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbport": "",
        "dbtableprefix": "oc_",
        "mysql.utf8mb4": true,
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "objectstore": {
            "class": "\\OC\\Files\\ObjectStore\\S3",
            "arguments": {
                "bucket": "valentine-cloud",
                "autocreate": false,
                "key": "***REMOVED SENSITIVE VALUE***",
                "secret": "***REMOVED SENSITIVE VALUE***",
                "hostname": "gateway.storjshare.io",
                "port": 443,
                "use_ssl": true,
                "region": "optional",
                "use_path_style": true
            }
        }
    }
}

List of activated Apps

Enabled:
  - activity: 2.17.0
  - circles: 25.0.0
  - cloud_federation_api: 1.8.0
  - comments: 1.15.0
  - contactsinteraction: 1.6.0
  - dashboard: 7.5.0
  - dav: 1.24.0
  - federatedfilesharing: 1.15.0
  - federation: 1.15.0
  - files: 1.20.1
  - files_pdfviewer: 2.6.0
  - files_rightclick: 1.4.0
  - files_sharing: 1.17.0
  - files_trashbin: 1.15.0
  - files_versions: 1.18.0
  - firstrunwizard: 2.14.0
  - logreader: 2.10.0
  - lookup_server_connector: 1.13.0
  - nextcloud_announcements: 1.14.0
  - notifications: 2.13.1
  - oauth2: 1.13.0
  - password_policy: 1.15.0
  - photos: 2.0.1
  - privacy: 1.9.0
  - provisioning_api: 1.15.0
  - recommendations: 1.4.0
  - related_resources: 1.0.3
  - serverinfo: 1.15.0
  - settings: 1.7.0
  - sharebymail: 1.15.0
  - support: 1.8.0
  - survey_client: 1.13.0
  - systemtags: 1.15.0
  - text: 3.6.0
  - theming: 2.0.1
  - twofactor_backupcodes: 1.14.0
  - updatenotification: 1.15.0
  - user_status: 1.5.0
  - viewer: 1.9.0
  - weather_status: 1.5.0
  - workflowengine: 2.7.0
Disabled:
  - admin_audit
  - bruteforcesettings
  - encryption
  - files_external
  - suspicious_login
  - twofactor_totp
  - user_ldap

Nextcloud Signing status

Not possible.

Nextcloud Logs

Summary (click to expand for full stack trace)

	"exception": {
		"Exception": "Exception",
		"Message": "Creation of bucket \"valentine-cloud\" failed. Error executing \"CreateBucket\" on \"https://gateway.storjshare.io/valentine-cloud\"; AWS HTTP error: Client error: `PUT https://gateway.storjshare.io/valentine-cloud` resulted in a `403 Forbidden` response:\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>AccessDenied</Code><Message>Access Denied.</Message><BucketName>vale (truncated...)\n AccessDenied (client): Access Denied. - <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>AccessDenied</Code><Message>Access Denied.</Message><BucketName>valentine-cloud</BucketName><Resource>/valentine-cloud</Resource><RequestId>173ECB108CE77A3F</RequestId><HostId></HostId></Error>",
{
	"reqId": "I8lwoIkGSFkhL7KcniYt",
	"level": 3,
	"time": "2023-01-29T13:36:23+00:00",
	"remoteAddr": "61.19.2.202",
	"user": "--",
	"app": "objectstore",
	"method": "GET",
	"url": "/index.php/login",
	"message": "Could not create object urn:oid:204 for appdata_oc5r25o7fwl6/js/core/merged-template-prepend.js",
	"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36",
	"version": "25.0.3.2",
	"exception": {
		"Exception": "Exception",
		"Message": "Creation of bucket \"valentine-cloud\" failed. Error executing \"CreateBucket\" on \"https://gateway.storjshare.io/valentine-cloud\"; AWS HTTP error: Client error: `PUT https://gateway.storjshare.io/valentine-cloud` resulted in a `403 Forbidden` response:\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>AccessDenied</Code><Message>Access Denied.</Message><BucketName>vale (truncated...)\n AccessDenied (client): Access Denied. - <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>AccessDenied</Code><Message>Access Denied.</Message><BucketName>valentine-cloud</BucketName><Resource>/valentine-cloud</Resource><RequestId>173ECB108CE77A3F</RequestId><HostId></HostId></Error>",
		"Code": 0,
		"Trace": [{
			"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/S3ObjectTrait.php",
			"line": 100,
			"function": "getConnection",
			"class": "OC\\Files\\ObjectStore\\S3",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/S3ObjectTrait.php",
			"line": 159,
			"function": "writeSingle",
			"class": "OC\\Files\\ObjectStore\\S3",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
			"line": 497,
			"function": "writeObject",
			"class": "OC\\Files\\ObjectStore\\S3",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
			"line": 426,
			"function": "writeStream",
			"class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
			"line": 337,
			"function": "writeBack",
			"class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
			"type": "->"
		}, {
			"function": "OC\\Files\\ObjectStore\\{closure}",
			"class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
			"type": "->",
			"args": ["*** sensitive parameters replaced ***"]
		}, {
			"file": "/var/www/nextcloud/3rdparty/icewind/streams/src/CallbackWrapper.php",
			"line": 119,
			"function": "call_user_func"
		}, {
			"function": "stream_close",
			"class": "Icewind\\Streams\\CallbackWrapper",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
			"line": 447,
			"function": "fclose"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/Storage/Wrapper/Wrapper.php",
			"line": 258,
			"function": "file_put_contents",
			"class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/Storage/Wrapper/Availability.php",
			"line": 274,
			"function": "file_put_contents",
			"class": "OC\\Files\\Storage\\Wrapper\\Wrapper",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/View.php",
			"line": 1179,
			"function": "file_put_contents",
			"class": "OC\\Files\\Storage\\Wrapper\\Availability",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/View.php",
			"line": 705,
			"function": "basicOperation",
			"class": "OC\\Files\\View",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/Node/Folder.php",
			"line": 192,
			"function": "file_put_contents",
			"class": "OC\\Files\\View",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/SimpleFS/NewSimpleFile.php",
			"line": 121,
			"function": "newFile",
			"class": "OC\\Files\\Node\\Folder",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Template/JSCombiner.php",
			"line": 194,
			"function": "putContent",
			"class": "OC\\Files\\SimpleFS\\NewSimpleFile",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Template/JSCombiner.php",
			"line": 97,
			"function": "cache",
			"class": "OC\\Template\\JSCombiner",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Template/JSResourceLocator.php",
			"line": 125,
			"function": "process",
			"class": "OC\\Template\\JSCombiner",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Template/JSResourceLocator.php",
			"line": 77,
			"function": "cacheAndAppendCombineJsonIfExist",
			"class": "OC\\Template\\JSResourceLocator",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Template/ResourceLocator.php",
			"line": 78,
			"function": "doFind",
			"class": "OC\\Template\\JSResourceLocator",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/TemplateLayout.php",
			"line": 380,
			"function": "find",
			"class": "OC\\Template\\ResourceLocator",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/TemplateLayout.php",
			"line": 212,
			"function": "findJavascriptFiles",
			"class": "OC\\TemplateLayout",
			"type": "::"
		}, {
			"file": "/var/www/nextcloud/lib/private/legacy/OC_Template.php",
			"line": 184,
			"function": "__construct",
			"class": "OC\\TemplateLayout",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/public/AppFramework/Http/TemplateResponse.php",
			"line": 213,
			"function": "fetchPage",
			"class": "OC_Template",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php",
			"line": 178,
			"function": "render",
			"class": "OCP\\AppFramework\\Http\\TemplateResponse",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/AppFramework/App.php",
			"line": 172,
			"function": "dispatch",
			"class": "OC\\AppFramework\\Http\\Dispatcher",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Route/Router.php",
			"line": 298,
			"function": "main",
			"class": "OC\\AppFramework\\App",
			"type": "::"
		}, {
			"file": "/var/www/nextcloud/lib/base.php",
			"line": 1047,
			"function": "match",
			"class": "OC\\Route\\Router",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/index.php",
			"line": 36,
			"function": "handleRequest",
			"class": "OC",
			"type": "::"
		}],
		"File": "/var/www/nextcloud/lib/private/Files/ObjectStore/S3ConnectionTrait.php",
		"Line": 166,
		"message": "Could not create object urn:oid:204 for appdata_oc5r25o7fwl6/js/core/merged-template-prepend.js",
		"CustomMessage": "Could not create object urn:oid:204 for appdata_oc5r25o7fwl6/js/core/merged-template-prepend.js"
	}
} {
	"reqId": "I8lwoIkGSFkhL7KcniYt",
	"level": 3,
	"time": "2023-01-29T13:36:23+00:00",
	"remoteAddr": "61.19.2.202",
	"user": "--",
	"app": "index",
	"method": "GET",
	"url": "/index.php/login",
	"message": "Creation of bucket \"valentine-cloud\" failed. Error executing \"CreateBucket\" on \"https://gateway.storjshare.io/valentine-cloud\"; AWS HTTP error: Client error: `PUT https://gateway.storjshare.io/valentine-cloud` resulted in a `403 Forbidden` response:\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>AccessDenied</Code><Message>Access Denied.</Message><BucketName>vale (truncated...)\n AccessDenied (client): Access Denied. - <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>AccessDenied</Code><Message>Access Denied.</Message><BucketName>valentine-cloud</BucketName><Resource>/valentine-cloud</Resource><RequestId>173ECB108CE77A3F</RequestId><HostId></HostId></Error>",
	"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36",
	"version": "25.0.3.2",
	"exception": {
		"Exception": "Exception",
		"Message": "Creation of bucket \"valentine-cloud\" failed. Error executing \"CreateBucket\" on \"https://gateway.storjshare.io/valentine-cloud\"; AWS HTTP error: Client error: `PUT https://gateway.storjshare.io/valentine-cloud` resulted in a `403 Forbidden` response:\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>AccessDenied</Code><Message>Access Denied.</Message><BucketName>vale (truncated...)\n AccessDenied (client): Access Denied. - <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>AccessDenied</Code><Message>Access Denied.</Message><BucketName>valentine-cloud</BucketName><Resource>/valentine-cloud</Resource><RequestId>173ECB108CE77A3F</RequestId><HostId></HostId></Error>",
		"Code": 0,
		"Trace": [{
			"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/S3ObjectTrait.php",
			"line": 100,
			"function": "getConnection",
			"class": "OC\\Files\\ObjectStore\\S3",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/S3ObjectTrait.php",
			"line": 159,
			"function": "writeSingle",
			"class": "OC\\Files\\ObjectStore\\S3",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
			"line": 497,
			"function": "writeObject",
			"class": "OC\\Files\\ObjectStore\\S3",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
			"line": 426,
			"function": "writeStream",
			"class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
			"line": 337,
			"function": "writeBack",
			"class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
			"type": "->"
		}, {
			"function": "OC\\Files\\ObjectStore\\{closure}",
			"class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
			"type": "->",
			"args": ["*** sensitive parameters replaced ***"]
		}, {
			"file": "/var/www/nextcloud/3rdparty/icewind/streams/src/CallbackWrapper.php",
			"line": 119,
			"function": "call_user_func"
		}, {
			"function": "stream_close",
			"class": "Icewind\\Streams\\CallbackWrapper",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
			"line": 447,
			"function": "fclose"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/Storage/Wrapper/Wrapper.php",
			"line": 258,
			"function": "file_put_contents",
			"class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/Storage/Wrapper/Availability.php",
			"line": 274,
			"function": "file_put_contents",
			"class": "OC\\Files\\Storage\\Wrapper\\Wrapper",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/View.php",
			"line": 1179,
			"function": "file_put_contents",
			"class": "OC\\Files\\Storage\\Wrapper\\Availability",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/View.php",
			"line": 705,
			"function": "basicOperation",
			"class": "OC\\Files\\View",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/Node/Folder.php",
			"line": 192,
			"function": "file_put_contents",
			"class": "OC\\Files\\View",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/SimpleFS/NewSimpleFile.php",
			"line": 121,
			"function": "newFile",
			"class": "OC\\Files\\Node\\Folder",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Template/JSCombiner.php",
			"line": 194,
			"function": "putContent",
			"class": "OC\\Files\\SimpleFS\\NewSimpleFile",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Template/JSCombiner.php",
			"line": 97,
			"function": "cache",
			"class": "OC\\Template\\JSCombiner",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Template/JSResourceLocator.php",
			"line": 125,
			"function": "process",
			"class": "OC\\Template\\JSCombiner",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Template/JSResourceLocator.php",
			"line": 77,
			"function": "cacheAndAppendCombineJsonIfExist",
			"class": "OC\\Template\\JSResourceLocator",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Template/ResourceLocator.php",
			"line": 78,
			"function": "doFind",
			"class": "OC\\Template\\JSResourceLocator",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/TemplateLayout.php",
			"line": 380,
			"function": "find",
			"class": "OC\\Template\\ResourceLocator",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/TemplateLayout.php",
			"line": 212,
			"function": "findJavascriptFiles",
			"class": "OC\\TemplateLayout",
			"type": "::"
		}, {
			"file": "/var/www/nextcloud/lib/private/legacy/OC_Template.php",
			"line": 184,
			"function": "__construct",
			"class": "OC\\TemplateLayout",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/public/AppFramework/Http/TemplateResponse.php",
			"line": 213,
			"function": "fetchPage",
			"class": "OC_Template",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php",
			"line": 178,
			"function": "render",
			"class": "OCP\\AppFramework\\Http\\TemplateResponse",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/AppFramework/App.php",
			"line": 172,
			"function": "dispatch",
			"class": "OC\\AppFramework\\Http\\Dispatcher",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Route/Router.php",
			"line": 298,
			"function": "main",
			"class": "OC\\AppFramework\\App",
			"type": "::"
		}, {
			"file": "/var/www/nextcloud/lib/base.php",
			"line": 1047,
			"function": "match",
			"class": "OC\\Route\\Router",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/index.php",
			"line": 36,
			"function": "handleRequest",
			"class": "OC",
			"type": "::"
		}],
		"File": "/var/www/nextcloud/lib/private/Files/ObjectStore/S3ConnectionTrait.php",
		"Line": 166,
		"CustomMessage": "--"
	}
} {
	"reqId": "I8lwoIkGSFkhL7KcniYt",
	"level": 3,
	"time": "2023-01-29T13:36:23+00:00",
	"remoteAddr": "61.19.2.202",
	"user": "--",
	"app": "objectstore",
	"method": "GET",
	"url": "/index.php/login",
	"message": "Could not create object urn:oid:205 for appdata_oc5r25o7fwl6/js/core/merged-template-prepend.js",
	"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36",
	"version": "25.0.3.2",
	"exception": {
		"Exception": "Aws\\S3\\Exception\\S3Exception",
		"Message": "Error executing \"PutObject\" on \"https://gateway.storjshare.io/valentine-cloud/urn%3Aoid%3A205\"; AWS HTTP error: Client error: `PUT https://gateway.storjshare.io/valentine-cloud/urn%3Aoid%3A205` resulted in a `403 Forbidden` response:\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>AccessDenied</Code><Message>Access Denied.</Message><Key>urn:oid:205 (truncated...)\n AccessDenied (client): Access Denied. - <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>AccessDenied</Code><Message>Access Denied.</Message><Key>urn:oid:205</Key><BucketName>valentine-cloud</BucketName><Resource>/valentine-cloud/urn:oid:205</Resource><RequestId>173ECB1094DDCDFD</RequestId><HostId></HostId></Error>",
		"Code": 0,
		"Trace": [{
			"file": "/var/www/nextcloud/3rdparty/aws/aws-sdk-php/src/WrappedHttpHandler.php",
			"line": 97,
			"function": "parseError",
			"class": "Aws\\WrappedHttpHandler",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
			"line": 204,
			"function": "Aws\\{closure}",
			"class": "Aws\\WrappedHttpHandler",
			"type": "->",
			"args": ["*** sensitive parameters replaced ***"]
		}, {
			"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
			"line": 169,
			"function": "callHandler",
			"class": "GuzzleHttp\\Promise\\Promise",
			"type": "::"
		}, {
			"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/RejectedPromise.php",
			"line": 42,
			"function": "GuzzleHttp\\Promise\\{closure}",
			"class": "GuzzleHttp\\Promise\\Promise",
			"type": "::",
			"args": ["*** sensitive parameters replaced ***"]
		}, {
			"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/TaskQueue.php",
			"line": 48,
			"function": "GuzzleHttp\\Promise\\{closure}",
			"class": "GuzzleHttp\\Promise\\RejectedPromise",
			"type": "::",
			"args": ["*** sensitive parameters replaced ***"]
		}, {
			"file": "/var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php",
			"line": 159,
			"function": "run",
			"class": "GuzzleHttp\\Promise\\TaskQueue",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php",
			"line": 184,
			"function": "tick",
			"class": "GuzzleHttp\\Handler\\CurlMultiHandler",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
			"line": 248,
			"function": "execute",
			"class": "GuzzleHttp\\Handler\\CurlMultiHandler",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
			"line": 224,
			"function": "invokeWaitFn",
			"class": "GuzzleHttp\\Promise\\Promise",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
			"line": 269,
			"function": "waitIfPending",
			"class": "GuzzleHttp\\Promise\\Promise",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
			"line": 226,
			"function": "invokeWaitList",
			"class": "GuzzleHttp\\Promise\\Promise",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
			"line": 269,
			"function": "waitIfPending",
			"class": "GuzzleHttp\\Promise\\Promise",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
			"line": 226,
			"function": "invokeWaitList",
			"class": "GuzzleHttp\\Promise\\Promise",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
			"line": 62,
			"function": "waitIfPending",
			"class": "GuzzleHttp\\Promise\\Promise",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/3rdparty/aws/aws-sdk-php/src/AwsClientTrait.php",
			"line": 58,
			"function": "wait",
			"class": "GuzzleHttp\\Promise\\Promise",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/3rdparty/aws/aws-sdk-php/src/AwsClientTrait.php",
			"line": 86,
			"function": "execute",
			"class": "Aws\\AwsClient",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/S3ObjectTrait.php",
			"line": 105,
			"function": "__call",
			"class": "Aws\\AwsClient",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/S3ObjectTrait.php",
			"line": 159,
			"function": "writeSingle",
			"class": "OC\\Files\\ObjectStore\\S3",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
			"line": 497,
			"function": "writeObject",
			"class": "OC\\Files\\ObjectStore\\S3",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
			"line": 426,
			"function": "writeStream",
			"class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
			"line": 337,
			"function": "writeBack",
			"class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
			"type": "->"
		}, {
			"function": "OC\\Files\\ObjectStore\\{closure}",
			"class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
			"type": "->",
			"args": ["*** sensitive parameters replaced ***"]
		}, {
			"file": "/var/www/nextcloud/3rdparty/icewind/streams/src/CallbackWrapper.php",
			"line": 119,
			"function": "call_user_func"
		}, {
			"function": "stream_close",
			"class": "Icewind\\Streams\\CallbackWrapper",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
			"line": 447,
			"function": "fclose"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/Storage/Wrapper/Wrapper.php",
			"line": 258,
			"function": "file_put_contents",
			"class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/Storage/Wrapper/Availability.php",
			"line": 274,
			"function": "file_put_contents",
			"class": "OC\\Files\\Storage\\Wrapper\\Wrapper",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/View.php",
			"line": 1179,
			"function": "file_put_contents",
			"class": "OC\\Files\\Storage\\Wrapper\\Availability",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/View.php",
			"line": 705,
			"function": "basicOperation",
			"class": "OC\\Files\\View",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/Node/Folder.php",
			"line": 192,
			"function": "file_put_contents",
			"class": "OC\\Files\\View",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/SimpleFS/NewSimpleFile.php",
			"line": 121,
			"function": "newFile",
			"class": "OC\\Files\\Node\\Folder",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Template/JSCombiner.php",
			"line": 194,
			"function": "putContent",
			"class": "OC\\Files\\SimpleFS\\NewSimpleFile",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Template/JSCombiner.php",
			"line": 97,
			"function": "cache",
			"class": "OC\\Template\\JSCombiner",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Template/JSResourceLocator.php",
			"line": 125,
			"function": "process",
			"class": "OC\\Template\\JSCombiner",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Template/JSResourceLocator.php",
			"line": 77,
			"function": "cacheAndAppendCombineJsonIfExist",
			"class": "OC\\Template\\JSResourceLocator",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Template/ResourceLocator.php",
			"line": 78,
			"function": "doFind",
			"class": "OC\\Template\\JSResourceLocator",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/TemplateLayout.php",
			"line": 380,
			"function": "find",
			"class": "OC\\Template\\ResourceLocator",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/TemplateLayout.php",
			"line": 212,
			"function": "findJavascriptFiles",
			"class": "OC\\TemplateLayout",
			"type": "::"
		}, {
			"file": "/var/www/nextcloud/lib/private/legacy/OC_Template.php",
			"line": 184,
			"function": "__construct",
			"class": "OC\\TemplateLayout",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Template/Base.php",
			"line": 132,
			"function": "fetchPage",
			"class": "OC_Template",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/legacy/OC_Template.php",
			"line": 333,
			"function": "printPage",
			"class": "OC\\Template\\Base",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/index.php",
			"line": 74,
			"function": "printExceptionErrorPage",
			"class": "OC_Template",
			"type": "::"
		}],
		"File": "/var/www/nextcloud/3rdparty/aws/aws-sdk-php/src/WrappedHttpHandler.php",
		"Line": 195,
		"Previous": {
			"Exception": "GuzzleHttp\\Exception\\ClientException",
			"Message": "Client error: `PUT https://gateway.storjshare.io/valentine-cloud/urn%3Aoid%3A205` resulted in a `403 Forbidden` response:\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>AccessDenied</Code><Message>Access Denied.</Message><Key>urn:oid:205 (truncated...)\n",
			"Code": 403,
			"Trace": [{
				"file": "/var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php",
				"line": 69,
				"function": "create",
				"class": "GuzzleHttp\\Exception\\RequestException",
				"type": "::"
			}, {
				"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
				"line": 204,
				"function": "GuzzleHttp\\{closure}",
				"class": "GuzzleHttp\\Middleware",
				"type": "::",
				"args": ["*** sensitive parameters replaced ***"]
			}, {
				"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
				"line": 153,
				"function": "callHandler",
				"class": "GuzzleHttp\\Promise\\Promise",
				"type": "::"
			}, {
				"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/TaskQueue.php",
				"line": 48,
				"function": "GuzzleHttp\\Promise\\{closure}",
				"class": "GuzzleHttp\\Promise\\Promise",
				"type": "::",
				"args": ["*** sensitive parameters replaced ***"]
			}, {
				"file": "/var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php",
				"line": 159,
				"function": "run",
				"class": "GuzzleHttp\\Promise\\TaskQueue",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php",
				"line": 184,
				"function": "tick",
				"class": "GuzzleHttp\\Handler\\CurlMultiHandler",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
				"line": 248,
				"function": "execute",
				"class": "GuzzleHttp\\Handler\\CurlMultiHandler",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
				"line": 224,
				"function": "invokeWaitFn",
				"class": "GuzzleHttp\\Promise\\Promise",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
				"line": 269,
				"function": "waitIfPending",
				"class": "GuzzleHttp\\Promise\\Promise",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
				"line": 226,
				"function": "invokeWaitList",
				"class": "GuzzleHttp\\Promise\\Promise",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
				"line": 269,
				"function": "waitIfPending",
				"class": "GuzzleHttp\\Promise\\Promise",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
				"line": 226,
				"function": "invokeWaitList",
				"class": "GuzzleHttp\\Promise\\Promise",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
				"line": 62,
				"function": "waitIfPending",
				"class": "GuzzleHttp\\Promise\\Promise",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/3rdparty/aws/aws-sdk-php/src/AwsClientTrait.php",
				"line": 58,
				"function": "wait",
				"class": "GuzzleHttp\\Promise\\Promise",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/3rdparty/aws/aws-sdk-php/src/AwsClientTrait.php",
				"line": 86,
				"function": "execute",
				"class": "Aws\\AwsClient",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/S3ObjectTrait.php",
				"line": 105,
				"function": "__call",
				"class": "Aws\\AwsClient",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/S3ObjectTrait.php",
				"line": 159,
				"function": "writeSingle",
				"class": "OC\\Files\\ObjectStore\\S3",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
				"line": 497,
				"function": "writeObject",
				"class": "OC\\Files\\ObjectStore\\S3",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
				"line": 426,
				"function": "writeStream",
				"class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
				"line": 337,
				"function": "writeBack",
				"class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
				"type": "->"
			}, {
				"function": "OC\\Files\\ObjectStore\\{closure}",
				"class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
				"type": "->",
				"args": ["*** sensitive parameters replaced ***"]
			}, {
				"file": "/var/www/nextcloud/3rdparty/icewind/streams/src/CallbackWrapper.php",
				"line": 119,
				"function": "call_user_func"
			}, {
				"function": "stream_close",
				"class": "Icewind\\Streams\\CallbackWrapper",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
				"line": 447,
				"function": "fclose"
			}, {
				"file": "/var/www/nextcloud/lib/private/Files/Storage/Wrapper/Wrapper.php",
				"line": 258,
				"function": "file_put_contents",
				"class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/Files/Storage/Wrapper/Availability.php",
				"line": 274,
				"function": "file_put_contents",
				"class": "OC\\Files\\Storage\\Wrapper\\Wrapper",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/Files/View.php",
				"line": 1179,
				"function": "file_put_contents",
				"class": "OC\\Files\\Storage\\Wrapper\\Availability",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/Files/View.php",
				"line": 705,
				"function": "basicOperation",
				"class": "OC\\Files\\View",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/Files/Node/Folder.php",
				"line": 192,
				"function": "file_put_contents",
				"class": "OC\\Files\\View",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/Files/SimpleFS/NewSimpleFile.php",
				"line": 121,
				"function": "newFile",
				"class": "OC\\Files\\Node\\Folder",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/Template/JSCombiner.php",
				"line": 194,
				"function": "putContent",
				"class": "OC\\Files\\SimpleFS\\NewSimpleFile",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/Template/JSCombiner.php",
				"line": 97,
				"function": "cache",
				"class": "OC\\Template\\JSCombiner",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/Template/JSResourceLocator.php",
				"line": 125,
				"function": "process",
				"class": "OC\\Template\\JSCombiner",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/Template/JSResourceLocator.php",
				"line": 77,
				"function": "cacheAndAppendCombineJsonIfExist",
				"class": "OC\\Template\\JSResourceLocator",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/Template/ResourceLocator.php",
				"line": 78,
				"function": "doFind",
				"class": "OC\\Template\\JSResourceLocator",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/TemplateLayout.php",
				"line": 380,
				"function": "find",
				"class": "OC\\Template\\ResourceLocator",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/TemplateLayout.php",
				"line": 212,
				"function": "findJavascriptFiles",
				"class": "OC\\TemplateLayout",
				"type": "::"
			}, {
				"file": "/var/www/nextcloud/lib/private/legacy/OC_Template.php",
				"line": 184,
				"function": "__construct",
				"class": "OC\\TemplateLayout",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/Template/Base.php",
				"line": 132,
				"function": "fetchPage",
				"class": "OC_Template",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/legacy/OC_Template.php",
				"line": 333,
				"function": "printPage",
				"class": "OC\\Template\\Base",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/index.php",
				"line": 74,
				"function": "printExceptionErrorPage",
				"class": "OC_Template",
				"type": "::"
			}],
			"File": "/var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Exception/RequestException.php",
			"Line": 113
		},
		"message": "Could not create object urn:oid:205 for appdata_oc5r25o7fwl6/js/core/merged-template-prepend.js",
		"CustomMessage": "Could not create object urn:oid:205 for appdata_oc5r25o7fwl6/js/core/merged-template-prepend.js"
	}
} {
	"reqId": "I8lwoIkGSFkhL7KcniYt",
	"level": 3,
	"time": "2023-01-29T13:36:23+00:00",
	"remoteAddr": "61.19.2.202",
	"user": "--",
	"app": "core",
	"method": "GET",
	"url": "/index.php/login",
	"message": "Creation of bucket \"valentine-cloud\" failed. Error executing \"CreateBucket\" on \"https://gateway.storjshare.io/valentine-cloud\"; AWS HTTP error: Client error: `PUT https://gateway.storjshare.io/valentine-cloud` resulted in a `403 Forbidden` response:\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>AccessDenied</Code><Message>Access Denied.</Message><BucketName>vale (truncated...)\n AccessDenied (client): Access Denied. - <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>AccessDenied</Code><Message>Access Denied.</Message><BucketName>valentine-cloud</BucketName><Resource>/valentine-cloud</Resource><RequestId>173ECB108CE77A3F</RequestId><HostId></HostId></Error>",
	"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36",
	"version": "25.0.3.2",
	"exception": {
		"Exception": "Exception",
		"Message": "Creation of bucket \"valentine-cloud\" failed. Error executing \"CreateBucket\" on \"https://gateway.storjshare.io/valentine-cloud\"; AWS HTTP error: Client error: `PUT https://gateway.storjshare.io/valentine-cloud` resulted in a `403 Forbidden` response:\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>AccessDenied</Code><Message>Access Denied.</Message><BucketName>vale (truncated...)\n AccessDenied (client): Access Denied. - <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>AccessDenied</Code><Message>Access Denied.</Message><BucketName>valentine-cloud</BucketName><Resource>/valentine-cloud</Resource><RequestId>173ECB108CE77A3F</RequestId><HostId></HostId></Error>",
		"Code": 0,
		"Trace": [{
			"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/S3ObjectTrait.php",
			"line": 100,
			"function": "getConnection",
			"class": "OC\\Files\\ObjectStore\\S3",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/S3ObjectTrait.php",
			"line": 159,
			"function": "writeSingle",
			"class": "OC\\Files\\ObjectStore\\S3",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
			"line": 497,
			"function": "writeObject",
			"class": "OC\\Files\\ObjectStore\\S3",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
			"line": 426,
			"function": "writeStream",
			"class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
			"line": 337,
			"function": "writeBack",
			"class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
			"type": "->"
		}, {
			"function": "OC\\Files\\ObjectStore\\{closure}",
			"class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
			"type": "->",
			"args": ["*** sensitive parameters replaced ***"]
		}, {
			"file": "/var/www/nextcloud/3rdparty/icewind/streams/src/CallbackWrapper.php",
			"line": 119,
			"function": "call_user_func"
		}, {
			"function": "stream_close",
			"class": "Icewind\\Streams\\CallbackWrapper",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
			"line": 447,
			"function": "fclose"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/Storage/Wrapper/Wrapper.php",
			"line": 258,
			"function": "file_put_contents",
			"class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/Storage/Wrapper/Availability.php",
			"line": 274,
			"function": "file_put_contents",
			"class": "OC\\Files\\Storage\\Wrapper\\Wrapper",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/View.php",
			"line": 1179,
			"function": "file_put_contents",
			"class": "OC\\Files\\Storage\\Wrapper\\Availability",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/View.php",
			"line": 705,
			"function": "basicOperation",
			"class": "OC\\Files\\View",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/Node/Folder.php",
			"line": 192,
			"function": "file_put_contents",
			"class": "OC\\Files\\View",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/SimpleFS/NewSimpleFile.php",
			"line": 121,
			"function": "newFile",
			"class": "OC\\Files\\Node\\Folder",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Template/JSCombiner.php",
			"line": 194,
			"function": "putContent",
			"class": "OC\\Files\\SimpleFS\\NewSimpleFile",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Template/JSCombiner.php",
			"line": 97,
			"function": "cache",
			"class": "OC\\Template\\JSCombiner",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Template/JSResourceLocator.php",
			"line": 125,
			"function": "process",
			"class": "OC\\Template\\JSCombiner",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Template/JSResourceLocator.php",
			"line": 77,
			"function": "cacheAndAppendCombineJsonIfExist",
			"class": "OC\\Template\\JSResourceLocator",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Template/ResourceLocator.php",
			"line": 78,
			"function": "doFind",
			"class": "OC\\Template\\JSResourceLocator",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/TemplateLayout.php",
			"line": 380,
			"function": "find",
			"class": "OC\\Template\\ResourceLocator",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/TemplateLayout.php",
			"line": 212,
			"function": "findJavascriptFiles",
			"class": "OC\\TemplateLayout",
			"type": "::"
		}, {
			"file": "/var/www/nextcloud/lib/private/legacy/OC_Template.php",
			"line": 184,
			"function": "__construct",
			"class": "OC\\TemplateLayout",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/public/AppFramework/Http/TemplateResponse.php",
			"line": 213,
			"function": "fetchPage",
			"class": "OC_Template",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php",
			"line": 178,
			"function": "render",
			"class": "OCP\\AppFramework\\Http\\TemplateResponse",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/AppFramework/App.php",
			"line": 172,
			"function": "dispatch",
			"class": "OC\\AppFramework\\Http\\Dispatcher",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Route/Router.php",
			"line": 298,
			"function": "main",
			"class": "OC\\AppFramework\\App",
			"type": "::"
		}, {
			"file": "/var/www/nextcloud/lib/base.php",
			"line": 1047,
			"function": "match",
			"class": "OC\\Route\\Router",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/index.php",
			"line": 36,
			"function": "handleRequest",
			"class": "OC",
			"type": "::"
		}],
		"File": "/var/www/nextcloud/lib/private/Files/ObjectStore/S3ConnectionTrait.php",
		"Line": 166,
		"CustomMessage": "--"
	}
} {
	"reqId": "I8lwoIkGSFkhL7KcniYt",
	"level": 3,
	"time": "2023-01-29T13:36:23+00:00",
	"remoteAddr": "61.19.2.202",
	"user": "--",
	"app": "core",
	"method": "GET",
	"url": "/index.php/login",
	"message": "Error executing \"PutObject\" on \"https://gateway.storjshare.io/valentine-cloud/urn%3Aoid%3A205\"; AWS HTTP error: Client error: `PUT https://gateway.storjshare.io/valentine-cloud/urn%3Aoid%3A205` resulted in a `403 Forbidden` response:\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>AccessDenied</Code><Message>Access Denied.</Message><Key>urn:oid:205 (truncated...)\n AccessDenied (client): Access Denied. - <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>AccessDenied</Code><Message>Access Denied.</Message><Key>urn:oid:205</Key><BucketName>valentine-cloud</BucketName><Resource>/valentine-cloud/urn:oid:205</Resource><RequestId>173ECB1094DDCDFD</RequestId><HostId></HostId></Error>",
	"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36",
	"version": "25.0.3.2",
	"exception": {
		"Exception": "Aws\\S3\\Exception\\S3Exception",
		"Message": "Error executing \"PutObject\" on \"https://gateway.storjshare.io/valentine-cloud/urn%3Aoid%3A205\"; AWS HTTP error: Client error: `PUT https://gateway.storjshare.io/valentine-cloud/urn%3Aoid%3A205` resulted in a `403 Forbidden` response:\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>AccessDenied</Code><Message>Access Denied.</Message><Key>urn:oid:205 (truncated...)\n AccessDenied (client): Access Denied. - <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>AccessDenied</Code><Message>Access Denied.</Message><Key>urn:oid:205</Key><BucketName>valentine-cloud</BucketName><Resource>/valentine-cloud/urn:oid:205</Resource><RequestId>173ECB1094DDCDFD</RequestId><HostId></HostId></Error>",
		"Code": 0,
		"Trace": [{
			"file": "/var/www/nextcloud/3rdparty/aws/aws-sdk-php/src/WrappedHttpHandler.php",
			"line": 97,
			"function": "parseError",
			"class": "Aws\\WrappedHttpHandler",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
			"line": 204,
			"function": "Aws\\{closure}",
			"class": "Aws\\WrappedHttpHandler",
			"type": "->",
			"args": ["*** sensitive parameters replaced ***"]
		}, {
			"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
			"line": 169,
			"function": "callHandler",
			"class": "GuzzleHttp\\Promise\\Promise",
			"type": "::"
		}, {
			"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/RejectedPromise.php",
			"line": 42,
			"function": "GuzzleHttp\\Promise\\{closure}",
			"class": "GuzzleHttp\\Promise\\Promise",
			"type": "::",
			"args": ["*** sensitive parameters replaced ***"]
		}, {
			"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/TaskQueue.php",
			"line": 48,
			"function": "GuzzleHttp\\Promise\\{closure}",
			"class": "GuzzleHttp\\Promise\\RejectedPromise",
			"type": "::",
			"args": ["*** sensitive parameters replaced ***"]
		}, {
			"file": "/var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php",
			"line": 159,
			"function": "run",
			"class": "GuzzleHttp\\Promise\\TaskQueue",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php",
			"line": 184,
			"function": "tick",
			"class": "GuzzleHttp\\Handler\\CurlMultiHandler",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
			"line": 248,
			"function": "execute",
			"class": "GuzzleHttp\\Handler\\CurlMultiHandler",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
			"line": 224,
			"function": "invokeWaitFn",
			"class": "GuzzleHttp\\Promise\\Promise",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
			"line": 269,
			"function": "waitIfPending",
			"class": "GuzzleHttp\\Promise\\Promise",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
			"line": 226,
			"function": "invokeWaitList",
			"class": "GuzzleHttp\\Promise\\Promise",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
			"line": 269,
			"function": "waitIfPending",
			"class": "GuzzleHttp\\Promise\\Promise",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
			"line": 226,
			"function": "invokeWaitList",
			"class": "GuzzleHttp\\Promise\\Promise",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
			"line": 62,
			"function": "waitIfPending",
			"class": "GuzzleHttp\\Promise\\Promise",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/3rdparty/aws/aws-sdk-php/src/AwsClientTrait.php",
			"line": 58,
			"function": "wait",
			"class": "GuzzleHttp\\Promise\\Promise",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/3rdparty/aws/aws-sdk-php/src/AwsClientTrait.php",
			"line": 86,
			"function": "execute",
			"class": "Aws\\AwsClient",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/S3ObjectTrait.php",
			"line": 105,
			"function": "__call",
			"class": "Aws\\AwsClient",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/S3ObjectTrait.php",
			"line": 159,
			"function": "writeSingle",
			"class": "OC\\Files\\ObjectStore\\S3",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
			"line": 497,
			"function": "writeObject",
			"class": "OC\\Files\\ObjectStore\\S3",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
			"line": 426,
			"function": "writeStream",
			"class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
			"line": 337,
			"function": "writeBack",
			"class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
			"type": "->"
		}, {
			"function": "OC\\Files\\ObjectStore\\{closure}",
			"class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
			"type": "->",
			"args": ["*** sensitive parameters replaced ***"]
		}, {
			"file": "/var/www/nextcloud/3rdparty/icewind/streams/src/CallbackWrapper.php",
			"line": 119,
			"function": "call_user_func"
		}, {
			"function": "stream_close",
			"class": "Icewind\\Streams\\CallbackWrapper",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
			"line": 447,
			"function": "fclose"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/Storage/Wrapper/Wrapper.php",
			"line": 258,
			"function": "file_put_contents",
			"class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/Storage/Wrapper/Availability.php",
			"line": 274,
			"function": "file_put_contents",
			"class": "OC\\Files\\Storage\\Wrapper\\Wrapper",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/View.php",
			"line": 1179,
			"function": "file_put_contents",
			"class": "OC\\Files\\Storage\\Wrapper\\Availability",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/View.php",
			"line": 705,
			"function": "basicOperation",
			"class": "OC\\Files\\View",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/Node/Folder.php",
			"line": 192,
			"function": "file_put_contents",
			"class": "OC\\Files\\View",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Files/SimpleFS/NewSimpleFile.php",
			"line": 121,
			"function": "newFile",
			"class": "OC\\Files\\Node\\Folder",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Template/JSCombiner.php",
			"line": 194,
			"function": "putContent",
			"class": "OC\\Files\\SimpleFS\\NewSimpleFile",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Template/JSCombiner.php",
			"line": 97,
			"function": "cache",
			"class": "OC\\Template\\JSCombiner",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Template/JSResourceLocator.php",
			"line": 125,
			"function": "process",
			"class": "OC\\Template\\JSCombiner",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Template/JSResourceLocator.php",
			"line": 77,
			"function": "cacheAndAppendCombineJsonIfExist",
			"class": "OC\\Template\\JSResourceLocator",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Template/ResourceLocator.php",
			"line": 78,
			"function": "doFind",
			"class": "OC\\Template\\JSResourceLocator",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/TemplateLayout.php",
			"line": 380,
			"function": "find",
			"class": "OC\\Template\\ResourceLocator",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/TemplateLayout.php",
			"line": 212,
			"function": "findJavascriptFiles",
			"class": "OC\\TemplateLayout",
			"type": "::"
		}, {
			"file": "/var/www/nextcloud/lib/private/legacy/OC_Template.php",
			"line": 184,
			"function": "__construct",
			"class": "OC\\TemplateLayout",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/Template/Base.php",
			"line": 132,
			"function": "fetchPage",
			"class": "OC_Template",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/lib/private/legacy/OC_Template.php",
			"line": 333,
			"function": "printPage",
			"class": "OC\\Template\\Base",
			"type": "->"
		}, {
			"file": "/var/www/nextcloud/index.php",
			"line": 74,
			"function": "printExceptionErrorPage",
			"class": "OC_Template",
			"type": "::"
		}],
		"File": "/var/www/nextcloud/3rdparty/aws/aws-sdk-php/src/WrappedHttpHandler.php",
		"Line": 195,
		"Previous": {
			"Exception": "GuzzleHttp\\Exception\\ClientException",
			"Message": "Client error: `PUT https://gateway.storjshare.io/valentine-cloud/urn%3Aoid%3A205` resulted in a `403 Forbidden` response:\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>AccessDenied</Code><Message>Access Denied.</Message><Key>urn:oid:205 (truncated...)\n",
			"Code": 403,
			"Trace": [{
				"file": "/var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php",
				"line": 69,
				"function": "create",
				"class": "GuzzleHttp\\Exception\\RequestException",
				"type": "::"
			}, {
				"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
				"line": 204,
				"function": "GuzzleHttp\\{closure}",
				"class": "GuzzleHttp\\Middleware",
				"type": "::",
				"args": ["*** sensitive parameters replaced ***"]
			}, {
				"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
				"line": 153,
				"function": "callHandler",
				"class": "GuzzleHttp\\Promise\\Promise",
				"type": "::"
			}, {
				"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/TaskQueue.php",
				"line": 48,
				"function": "GuzzleHttp\\Promise\\{closure}",
				"class": "GuzzleHttp\\Promise\\Promise",
				"type": "::",
				"args": ["*** sensitive parameters replaced ***"]
			}, {
				"file": "/var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php",
				"line": 159,
				"function": "run",
				"class": "GuzzleHttp\\Promise\\TaskQueue",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php",
				"line": 184,
				"function": "tick",
				"class": "GuzzleHttp\\Handler\\CurlMultiHandler",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
				"line": 248,
				"function": "execute",
				"class": "GuzzleHttp\\Handler\\CurlMultiHandler",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
				"line": 224,
				"function": "invokeWaitFn",
				"class": "GuzzleHttp\\Promise\\Promise",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
				"line": 269,
				"function": "waitIfPending",
				"class": "GuzzleHttp\\Promise\\Promise",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
				"line": 226,
				"function": "invokeWaitList",
				"class": "GuzzleHttp\\Promise\\Promise",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
				"line": 269,
				"function": "waitIfPending",
				"class": "GuzzleHttp\\Promise\\Promise",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
				"line": 226,
				"function": "invokeWaitList",
				"class": "GuzzleHttp\\Promise\\Promise",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/3rdparty/guzzlehttp/promises/src/Promise.php",
				"line": 62,
				"function": "waitIfPending",
				"class": "GuzzleHttp\\Promise\\Promise",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/3rdparty/aws/aws-sdk-php/src/AwsClientTrait.php",
				"line": 58,
				"function": "wait",
				"class": "GuzzleHttp\\Promise\\Promise",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/3rdparty/aws/aws-sdk-php/src/AwsClientTrait.php",
				"line": 86,
				"function": "execute",
				"class": "Aws\\AwsClient",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/S3ObjectTrait.php",
				"line": 105,
				"function": "__call",
				"class": "Aws\\AwsClient",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/S3ObjectTrait.php",
				"line": 159,
				"function": "writeSingle",
				"class": "OC\\Files\\ObjectStore\\S3",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
				"line": 497,
				"function": "writeObject",
				"class": "OC\\Files\\ObjectStore\\S3",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
				"line": 426,
				"function": "writeStream",
				"class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
				"line": 337,
				"function": "writeBack",
				"class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
				"type": "->"
			}, {
				"function": "OC\\Files\\ObjectStore\\{closure}",
				"class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
				"type": "->",
				"args": ["*** sensitive parameters replaced ***"]
			}, {
				"file": "/var/www/nextcloud/3rdparty/icewind/streams/src/CallbackWrapper.php",
				"line": 119,
				"function": "call_user_func"
			}, {
				"function": "stream_close",
				"class": "Icewind\\Streams\\CallbackWrapper",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/Files/ObjectStore/ObjectStoreStorage.php",
				"line": 447,
				"function": "fclose"
			}, {
				"file": "/var/www/nextcloud/lib/private/Files/Storage/Wrapper/Wrapper.php",
				"line": 258,
				"function": "file_put_contents",
				"class": "OC\\Files\\ObjectStore\\ObjectStoreStorage",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/Files/Storage/Wrapper/Availability.php",
				"line": 274,
				"function": "file_put_contents",
				"class": "OC\\Files\\Storage\\Wrapper\\Wrapper",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/Files/View.php",
				"line": 1179,
				"function": "file_put_contents",
				"class": "OC\\Files\\Storage\\Wrapper\\Availability",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/Files/View.php",
				"line": 705,
				"function": "basicOperation",
				"class": "OC\\Files\\View",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/Files/Node/Folder.php",
				"line": 192,
				"function": "file_put_contents",
				"class": "OC\\Files\\View",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/Files/SimpleFS/NewSimpleFile.php",
				"line": 121,
				"function": "newFile",
				"class": "OC\\Files\\Node\\Folder",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/Template/JSCombiner.php",
				"line": 194,
				"function": "putContent",
				"class": "OC\\Files\\SimpleFS\\NewSimpleFile",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/Template/JSCombiner.php",
				"line": 97,
				"function": "cache",
				"class": "OC\\Template\\JSCombiner",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/Template/JSResourceLocator.php",
				"line": 125,
				"function": "process",
				"class": "OC\\Template\\JSCombiner",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/Template/JSResourceLocator.php",
				"line": 77,
				"function": "cacheAndAppendCombineJsonIfExist",
				"class": "OC\\Template\\JSResourceLocator",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/Template/ResourceLocator.php",
				"line": 78,
				"function": "doFind",
				"class": "OC\\Template\\JSResourceLocator",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/TemplateLayout.php",
				"line": 380,
				"function": "find",
				"class": "OC\\Template\\ResourceLocator",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/TemplateLayout.php",
				"line": 212,
				"function": "findJavascriptFiles",
				"class": "OC\\TemplateLayout",
				"type": "::"
			}, {
				"file": "/var/www/nextcloud/lib/private/legacy/OC_Template.php",
				"line": 184,
				"function": "__construct",
				"class": "OC\\TemplateLayout",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/Template/Base.php",
				"line": 132,
				"function": "fetchPage",
				"class": "OC_Template",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/lib/private/legacy/OC_Template.php",
				"line": 333,
				"function": "printPage",
				"class": "OC\\Template\\Base",
				"type": "->"
			}, {
				"file": "/var/www/nextcloud/index.php",
				"line": 74,
				"function": "printExceptionErrorPage",
				"class": "OC_Template",
				"type": "::"
			}],
			"File": "/var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Exception/RequestException.php",
			"Line": 113
		},
		"CustomMessage": "--"
	}
}

Additional info

I should not have to give permission to everything to fix this.

@EchedelleLR EchedelleLR added 0. Needs triage Pending check for reproducibility or if it fits our roadmap bug labels Jan 29, 2023
@joshtrichards
Copy link
Member

joshtrichards commented Jun 29, 2023

Hi @EchedeyLR:

You're correct that autocreate is a no-op for S3. It was removed recently from the docs for this very reason (albeit after your Issue). There's an equivalent parameter called verify_bucket_exists that exists in the code for S3. Unlike autocreate it defaults to true, but can be overridden in the same manner. It's not yet in the docs, but should accomplish what you want.

As for the uploading of an object, that may merely be a side effect of the bucket creation failing (though I admit it doesn't appear so from the modified stack trace). I'd have to revisit the code to be certain (and I don't have time to do so this evening).

As for your S3 provider working with your other named apps, well, it may work just fine with NC once the above is sorted out. :-) Also we may or may not use all the same bits of S3 functionality as your other named apps.

Also, keep in mind NC uses the official AWS SDK for S3 support. So, for the most part, if you see an exception trickle out of theAws\S3\Exception\S3Exception class it's probably legit (though upstream bugs do happen from time to time).

I did dig up a compatibility table that your S3 provider provides which you might find of interest in case something crops up in the future that could be compatibility related:

https://github.com/storj/gateway-st/blob/main/docs/s3-compatibility.md

Hope the above helps.

@joshtrichards
Copy link
Member

The documentation matter for autocreate vs verify_bucket_exists with S3 has an open issue in nextcloud/documentation#10436 tracking it. PRs are welcome. The "Edit" button is in the upper right of every documentation page. :-)

@novikov1337danil
Copy link

@EchedeyLR did you find a workaround? i faced the same problem

@EchedelleLR
Copy link
Author

I apologize but no, I guess the solution is in the faulty documentation.

I ended using the StorJ Nextcloud application for my use case, but maybe I would need to check here again if it is abandoned.

@danielsss
Copy link

danielsss commented Aug 31, 2023

@joshtrichards any updates of this?

I'm facing the same issue and the NC system is going down right now.
I've tried to use verify_bucket_exists: false to resolve this, but it didn't work.

Version: nextcloud:27.0.2-fpm
Situation: Upgrade steps 25 -> 26 -> 27

Config:

  array (
    'class' => '\\OC\\Files\\ObjectStore\\S3',
    'arguments' =>
    array (
      'bucket' => 'xmind-nextcloud',
      'autocreate' => true,
      'key' => '',
      'secret' => '',
      'hostname' => 's3.cn-northwest-1.amazonaws.com.cn',
      'port' => 443,
      'use_ssl' => true,
      'region' => 'cn-northwest-1',
      'use_path_style' => true,
      'verify_bucket_exists' => false,
    ),
  ),
  'ldapIgnoreNamingRules' => false,
  'ldapProviderFactory' => 'OCA\\User_LDAP\\LDAPProviderFactory',
  'loglevel' => 2,
  'maintenance' => false,
  'filelocking.enabled' => false,
  'debug' => true,
  'theme' => '',
  'app_install_overwrite' =>
  array (
    0 => 'groupfolders',
  ),
  'data-fingerprint' => '',

s3 error
s3 error-2

@kesselb
Copy link
Contributor

kesselb commented Aug 31, 2023

@danielsss

The error "getaddrinfo thread failed to start" from the second screenshot looks unrelated to Nextcloud.

@danielsss
Copy link

danielsss commented Aug 31, 2023

@kesselb

I think it's not about the network issue because it works fine on version 25.

I got those errors after upgrading the version to nextcloud:26.0.10-fpm
I've never changed the S3 configs.

Do you have any ideas that I can test it to exclude which is not related to NC ?

Please, help.

@joshtrichards
Copy link
Member

@danielsss Are you saying you saw the getaddrinfo() errors in NC25 and it worked? I find that hard to believe...but anything is possible I guess. Perhaps start with a basic DNS check from within your container. In the container command-line try some curl or ping calls to known hosts (even your S3 endpoint just to see if DNS lookup works). Until the getaddrinfo() error is addressed I'm afraid changing any configuration options won't be helpful because functioning DNS/outbound network connectivity is important. :)

@danielsss
Copy link

danielsss commented Aug 31, 2023

@joshtrichards @kesselb Thanks for helping me sort out this issue.

@joshtrichards You misunderstood what I mean. I didn't see any getaddrinfo() errors in NC25 but NC26 does.

Anyway, I solved this problem through your clue... It's a network issue and relates to here. There is a DNS resolution issue with nextcloud:27.0.2-fpm image on docker version 19.0.* and I've spent a couple of hours dealing with this...... headache :) Hope others don't be foolish like me.

Important
If you are facing the same issue as me, do the steps as below:

  1. using nextcloud:27.0.2-fpm-alpine instead of nextcloud:27.0.2-fpm

  2. chown -R www-data:www-data /var/www/html

@joshtrichards
Copy link
Member

joshtrichards commented Aug 31, 2023

Yes, Docker has DNS and network connectivity issues from time to time. It's important to track its updates/release notes:

https://docs.docker.com/engine/release-notes/24.0/ (and check Previous versions too to see what impacts you)

I think a lot of people forget that the Docker Engine needs updating to from time to time. :)

@despens
Copy link

despens commented Sep 18, 2023

I'm here to report that with Nextcloud 27.1.0 the server on startup tries to create an existing bucket when object storage is used as primary storage:

Exception: Creation of bucket "secret-bucket" failed. Error executing "CreateBucket" on "https://secret-storage/secret-bucket"; AWS HTTP error: Client error: PUT https://secret-storage/secret-bucket resulted in a 403 Forbidden response: [...]

That error makes sense because I removed the right to create and delete buckets from nextcloud's particular credentials. The bucket does exist and doesn't need to be created.

The configuration says:

<?php
$CONFIG = array (

    // initializing object store as primary storage

    'objectstore' => array (
      'class' => '\\OC\\Files\\ObjectStore\\S3',
      'arguments' =>
      array (
        // [...]
        'use_path_style' => true,
        'autocreate' => false,
        'verify_bucket_exists' => false,
      ),
    ),
);

It would be good if nextcloud could check for the existence of the bucket and not assume it should create the bucket on startup. Then it would be possible to run with minimal permissions.

It is probably not uncommon to run nextcloud and a few other applications under one storage account. If every app has the permission to create and delete buckets, a bug in one application could affect data in all other applications.

@joshtrichards
Copy link
Member

joshtrichards commented Sep 18, 2023

@despens That's actually what we do. If verify_bucket_exists is set to false that section of code to create the bucket doesn't even get executed so something is not behaving appropriately here. Can you confirm you don't have a sub-config.php overriding that S3 config in your NC config/ folder? For example, the community Docker container does that...

Also to rule out the obvious since there was an earlier bug: You are testing with v27.1 not v27.0.1, right?

@joshtrichards
Copy link
Member

Closing as the docs have been updated and there aren't any actionable items remaining with the current info available.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
0. Needs triage Pending check for reproducibility or if it fits our roadmap 25-feedback bug feature: object storage
Projects
None yet
Development

No branches or pull requests

7 participants