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

The bucket does not allow ACLs error when copying file to bucket with BucketOwnerEnforced ownership controls #14300

Closed
Fydon opened this issue Mar 2, 2023 · 5 comments · Fixed by #14306 or #14373
Assignees
Labels
bug s3 AWS S3 Protocol Implementation
Milestone

Comments

@Fydon
Copy link
Contributor

Fydon commented Mar 2, 2023

Describe the bug
I get the The bucket does not allow ACLs error when copying or moving files from one AWS S3 bucket to another. The destination bucket has ACLs disabled but the source does not. I've tried setting Default ACL to various values, including None, but still get the same error. There was work to address this issue in the past, e.g. #13386, which is where I first commented on this.

To Reproduce
Steps to reproduce the behavior:

  1. Setup one AWS S3 bucket with an Object Ownership of Bucket owner enforced, e.g. called enforced
  2. Setup another AWS S3 bucket with an Object Ownership of Bucket owner preferred, e.g. called preferred
  3. Copy an object to preferred and set the ACL to allow public read
  4. Copy the object from preferred to enforced

Expected behavior
I would expect Cyberduck to detect that the destination has disabled ACLs and so these should not be set after the file contents have been copied.

Screenshots
image

Desktop (please complete the following information):

  • OS: Windows 11
  • Cyberduck Version 8.5.6 (39394)

Log Files
I've added a debug log file, but tried to clean any details that are not necessary to debug this, like secrets and names of items. If there are details missing that you would like, please let me know.
cyberduck.log

@dkocher dkocher added the s3 AWS S3 Protocol Implementation label Mar 2, 2023
@dkocher dkocher changed the title The bucket does not allow ACLs The bucket does not allow ACLs error when copying file to bucket with BucketOwnerEnforced ownership controls Mar 2, 2023
@dkocher dkocher added the bug label Mar 2, 2023
@dkocher dkocher self-assigned this Mar 3, 2023
@dkocher dkocher added this to the 8.5.7 milestone Mar 3, 2023
dkocher added a commit that referenced this issue Mar 3, 2023
@dkocher dkocher linked a pull request Mar 3, 2023 that will close this issue
@Fydon
Copy link
Contributor Author

Fydon commented Mar 7, 2023

@dkocher Thank you for the fix. I'm getting various build errors when attempting to test the build. I'm happy to wait for a release, but wanted to test the patch.

The errors may be related to dependencies but I think I've set them up correctly. I had to use the Visual Studio 2022 build tools, rather than the 2017 listed

[INFO]   [msbuild] foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\diagnostics\TcpReachability.cs(30,63): error CS0426: The type name 'Diagnostics' does not exist in the type 'Reachability' [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]
[INFO]   [msbuild] foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\PasswordStoreFacade.cs(43,32): error CS0539: 'PasswordStoreFacade.delete(Host)' in explicit interface declaration is not found among members of the interface that can be implemented [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]
[INFO]   [msbuild] foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\PasswordStoreFacade.cs(48,28): error CS0539: 'PasswordStoreFacade.deletePassword(string, string)' in explicit interface declaration is not found among members of the interface that can be implemented [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]
[INFO]   [msbuild] foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\PasswordStoreFacade.cs(53,28): error CS0539: 'PasswordStoreFacade.deletePassword(Scheme, int, string, string)' in explicit interface declaration is not found among members of the interface that can be implemented [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]
[INFO]   [msbuild] foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\proxy\SystemSettingsProxy.cs(28,52): error CS0426: The type name 'Configuration' does not exist in the type 'ProxyFinder' [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]
[INFO]   [msbuild] foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\editor\SystemWatchEditor.cs(41,33): error CS0115: 'SystemWatchEditor.watch(Application, Local, FileWatcherListener, ApplicationQuitCallback)': no suitable method found to override [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]
[INFO]   [msbuild] foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\editor\SystemWatchEditor.cs(29,18): error CS0534: 'SystemWatchEditor' does not implement inherited abstract member 'AbstractEditor.watch(Local, FileWatcherListener)' [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]
[INFO]   [msbuild] foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\DataProtectorPasswordStore.cs(66,30): error CS0115: 'DataProtectorPasswordStore.deletePassword(string, string)': no suitable method found to override [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]
[INFO]   [msbuild] foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\DataProtectorPasswordStore.cs(71,30): error CS0115: 'DataProtectorPasswordStore.deletePassword(Scheme, int, string, string)': no suitable method found to override [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]
[INFO]   [msbuild] foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\editor\SystemWatchEditorFactory.cs(29,57): error CS0115: 'SystemWatchEditorFactory.create(Host, Path, ProgressListener)': no suitable method found to override [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]
[INFO]   [msbuild] foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\editor\SystemWatchEditorFactory.cs(27,18): error CS0534: 'SystemWatchEditorFactory' does not implement inherited abstract member 'EditorFactory.create(ProgressListener, SessionPool, Application, Path)' [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]
[INFO]   [msbuild] foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\proxy\SystemProxy.cs(32,55): error CS0115: 'SystemProxy.find(string)': no suitable method found to override [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]
[INFO]   [msbuild] foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\proxy\SystemProxy.cs(28,18): error CS0534: 'SystemProxy' does not implement inherited abstract member 'AbstractProxyFinder.find(Host)' [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]
[INFO]   [msbuild] foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\local\WindowsApplicationLauncher.cs(25,54): error CS0535: 'WindowsApplicationLauncher' does not implement interface member 'ApplicationLauncher.open(Local, Application, ApplicationQuitCallback)' [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]
[INFO]   [msbuild] foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\preferences\SettingsDictionaryPreferences.cs(141,33): error CS0115: 'SettingsDictionaryPreferences.configureLogging(string)': no suitable method found to override [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]
[INFO]   [msbuild] foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\CredentialManagerPasswordStore.cs(57,30): error CS0115: 'CredentialManagerPasswordStore.delete(Host)': no suitable method found to override [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]
[INFO]   [msbuild] foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\CredentialManagerPasswordStore.cs(70,30): error CS0115: 'CredentialManagerPasswordStore.deletePassword(string, string)': no suitable method found to override [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]
[INFO]   [msbuild] foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\CredentialManagerPasswordStore.cs(78,30): error CS0115: 'CredentialManagerPasswordStore.deletePassword(Scheme, int, string, string)': no suitable method found to override [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]
[INFO]   [msbuild]   CompilerServer: server - server processed compilation - 27a37db1-bcd8-4a97-b2b5-186d3902eaa6
[INFO]   [msbuild] Done Building Project "foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj" (default targets) -- FAILED.
[INFO]   [msbuild] Done Building Project "foo\cyberduck\core\native\build.proj" (Build target(s)) -- FAILED.
[INFO]   [msbuild] 
[INFO]   [msbuild] Build FAILED.
[INFO]   [msbuild]
[INFO]   [msbuild] "foo\cyberduck\core\native\build.proj" (Build target) (1) ->
[INFO]   [msbuild] "foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj" (default target) (3) ->
[INFO]   [msbuild] (CoreCompile target) ->
[INFO]   [msbuild]   foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\diagnostics\TcpReachability.cs(30,63): error CS0426: The type name 'Diagnostics' does not exist in the type 'Reachability' [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]
[INFO]   [msbuild]   foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\PasswordStoreFacade.cs(43,32): error CS0539: 'PasswordStoreFacade.delete(Host)' in explicit interface declaration is not found among members of the interface that can be implemented [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]
[INFO]   [msbuild]   foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\PasswordStoreFacade.cs(48,28): error CS0539: 'PasswordStoreFacade.deletePassword(string, string)' in explicit interface declaration is not found among members of the interface that can be implemented [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]
[INFO]   [msbuild]   foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\PasswordStoreFacade.cs(53,28): error CS0539: 'PasswordStoreFacade.deletePassword(Scheme, int, string, string)' in explicit interface declaration is not found among members of the interface that can be implemented [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]        
[INFO]   [msbuild]   foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\proxy\SystemSettingsProxy.cs(28,52): error CS0426: The type name 'Configuration' does not exist in the type 'ProxyFinder' [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]
[INFO]   [msbuild]   foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\editor\SystemWatchEditor.cs(41,33): error CS0115: 'SystemWatchEditor.watch(Application, Local, FileWatcherListener, ApplicationQuitCallback)': no suitable method found to override [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]
[INFO]   [msbuild]   foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\editor\SystemWatchEditor.cs(29,18): error CS0534: 'SystemWatchEditor' does not implement inherited abstract member 'AbstractEditor.watch(Local, FileWatcherListener)' [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]
[INFO]   [msbuild]   foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\DataProtectorPasswordStore.cs(66,30): error CS0115: 'DataProtectorPasswordStore.deletePassword(string, string)': no suitable method found to override [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]
[INFO]   [msbuild]   foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\DataProtectorPasswordStore.cs(71,30): error CS0115: 'DataProtectorPasswordStore.deletePassword(Scheme, int, string, string)': no suitable method found to override [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]
[INFO]   [msbuild]   foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\editor\SystemWatchEditorFactory.cs(29,57): error CS0115: 'SystemWatchEditorFactory.create(Host, Path, ProgressListener)': no suitable method found to override [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]
[INFO]   [msbuild]   foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\editor\SystemWatchEditorFactory.cs(27,18): error CS0534: 'SystemWatchEditorFactory' does not implement inherited abstract member 'EditorFactory.create(ProgressListener, SessionPool, Application, Path)' [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]
[INFO]   [msbuild]   foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\proxy\SystemProxy.cs(32,55): error CS0115: 'SystemProxy.find(string)': no suitable method found to override [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]
[INFO]   [msbuild]   foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\proxy\SystemProxy.cs(28,18): error CS0534: 'SystemProxy' does not implement inherited abstract member 'AbstractProxyFinder.find(Host)' [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]
[INFO]   [msbuild]   foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\local\WindowsApplicationLauncher.cs(25,54): error CS0535: 'WindowsApplicationLauncher' does not implement interface member 'ApplicationLauncher.open(Local, Application, ApplicationQuitCallback)' [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]
[INFO]   [msbuild]   foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\preferences\SettingsDictionaryPreferences.cs(141,33): error CS0115: 'SettingsDictionaryPreferences.configureLogging(string)': no suitable method found to override [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]
[INFO]   [msbuild]   foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\CredentialManagerPasswordStore.cs(57,30): error CS0115: 'CredentialManagerPasswordStore.delete(Host)': no suitable method found to override [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]
[INFO]   [msbuild]   foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\CredentialManagerPasswordStore.cs(70,30): error CS0115: 'CredentialManagerPasswordStore.deletePassword(string, string)': no suitable method found to override [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]
[INFO]   [msbuild]   foo\cyberduck\core\src\main\csharp\ch\cyberduck\core\CredentialManagerPasswordStore.cs(78,30): error CS0115: 'CredentialManagerPasswordStore.deletePassword(Scheme, int, string, string)': no suitable method found to override [foo\cyberduck\core\src\main\csharp\Cyberduck.Core.Native.csproj]
[INFO]   [msbuild]
[INFO]   [msbuild]     0 Warning(s)
[INFO]   [msbuild]     18 Error(s)
[INFO]   [msbuild]
[INFO]   [msbuild] Time Elapsed 00:00:03.60
[INFO] ------------------------------------------------------------------------

@ylangisc
Copy link
Contributor

ylangisc commented Mar 7, 2023

You can switch to the snapshot feed in Preferences → Update to test the fix.

@Fydon
Copy link
Contributor Author

Fydon commented Mar 7, 2023

Thank you. I can confirm that the fix is working.

dkocher added a commit that referenced this issue Mar 17, 2023
@dkocher dkocher reopened this Mar 17, 2023
@dkocher dkocher linked a pull request Mar 17, 2023 that will close this issue
@dkocher
Copy link
Contributor

dkocher commented Mar 20, 2023

@Fydon It would be great if you can confirm it is still working in snapshot build 8.5.7.39490 which includes the revised fix from 511af15.

@Fydon
Copy link
Contributor Author

Fydon commented Mar 22, 2023

@dkocher Using snapshot build 8.5.7.39527 it is still working. Thank you very much.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug s3 AWS S3 Protocol Implementation
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants