Hi,
I use S3 as primary storage and I wonder why Nextcloud is doing an fopen() on each S3 file when I list a directory ?
I got some 403 Forbidden errors from my S3 provider, because files are on GLACIER storage-class. But I don’t know why nextcloud needs to fopen() each file in a directory ! It is supposed to already have all information about files in database. And it doesn’t break listing even with 403 errors.
{"reqId":"8UzPLtZdElD9syEp1D3f","level":3,"time":"2020-04-14T12:21:16+00:00","remoteAddr":"51.15.xx.xx","user":"florent","app":"PHP","method":"PROPFIND","url":"/remote.php/dav/files/florent/Archives","message":"fopen(https://s3.fr-par.scw.cloud/cloud/urn%3Aoid%3A15060): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden\r\n at /var/www/cloud.io/lib/private/Files/ObjectStore/S3ObjectTrait.php#72","userAgent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36","version":"18.0.3.0"}
{"reqId":"8UzPLtZdElD9syEp1D3f","level":3,"time":"2020-04-14T12:21:16+00:00","remoteAddr":"51.15.xx.xx","user":"florent","app":"PHP","method":"PROPFIND","url":"/remote.php/dav/files/florent/Archives","message":"fopen(https://s3.fr-par.scw.cloud/cloud/urn%3Aoid%3A15060): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden\r\n at /var/www/cloud.io/lib/private/Files/ObjectStore/S3ObjectTrait.php#72","userAgent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36","version":"18.0.3.0"}
{"reqId":"8UzPLtZdElD9syEp1D3f","level":3,"time":"2020-04-14T12:21:16+00:00","remoteAddr":"51.15.xx.xx","user":"florent","app":"PHP","method":"PROPFIND","url":"/remote.php/dav/files/florent/Archives","message":"fopen(https://s3.fr-par.scw.cloud/cloud/urn%3Aoid%3A15060): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden\r\n at /var/www/cloud.io/lib/private/Files/ObjectStore/S3ObjectTrait.php#72","userAgent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36","version":"18.0.3.0"}
{"reqId":"8UzPLtZdElD9syEp1D3f","level":3,"time":"2020-04-14T12:21:16+00:00","remoteAddr":"51.15.xx.xx","user":"florent","app":"PHP","method":"PROPFIND","url":"/remote.php/dav/files/florent/Archives","message":"fopen(https://s3.fr-par.scw.cloud/cloud/urn%3Aoid%3A15060): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden\r\n at /var/www/cloud.io/lib/private/Files/ObjectStore/S3ObjectTrait.php#72","userAgent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36","version":"18.0.3.0"}
{"reqId":"8UzPLtZdElD9syEp1D3f","level":3,"time":"2020-04-14T12:21:16+00:00","remoteAddr":"51.15.xx.xx","user":"florent","app":"PHP","method":"PROPFIND","url":"/remote.php/dav/files/florent/Archives","message":"fopen(https://s3.fr-par.scw.cloud/cloud/urn%3Aoid%3A17905): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden\r\n at /var/www/cloud.io/lib/private/Files/ObjectStore/S3ObjectTrait.php#72","userAgent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36","version":"18.0.3.0"}
{"reqId":"8UzPLtZdElD9syEp1D3f","level":3,"time":"2020-04-14T12:21:16+00:00","remoteAddr":"51.15.xx.xx","user":"florent","app":"PHP","method":"PROPFIND","url":"/remote.php/dav/files/florent/Archives","message":"fopen(https://s3.fr-par.scw.cloud/cloud/urn%3Aoid%3A17905): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden\r\n at /var/www/cloud.io/lib/private/Files/ObjectStore/S3ObjectTrait.php#72","userAgent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36","version":"18.0.3.0"}
It is waste of resources ! It tries 8 times to fopen() each file of a directory !
Can someone explain why it does this ?