Cyberduck Mountain Duck CLI

#8518 closed defect (worksforme)

Rackspace uploads ignore default metadata headers specified in user.config

Reported by: Olga Owned by: dkocher
Priority: normal Milestone: 4.6.4
Component: cloudfiles Version: 4.6.3
Severity: normal Keywords:
Cc: Architecture:
Platform: Windows 7


I'm uploading files to a Rackspace Cloud Files container, and need to add the Access-Control-Allow-Origin: * header to all files. From the docs --

I understand that I can set the default metadata headers for uploads in user.config.

I added the following to <settings> in C:\Users\<name>\AppData\Roaming\Cyberduck\Cyberduck.exe_Url_<...>\\user.config:

<setting name="cf.metadata.default" value="Access-Control-Allow-Origin=*" />

But when I upload the files to Rackspace, Cyberduck uploads them without this header.

Fiddler shows that Cyberduck PUTs the file without the custom header, and doesn't additionally POST the header:

Content-Type: text/html
X-Auth-Token: ...
Content-Length: 10864
Connection: Keep-Alive
User-Agent: Cyberduck/4.6.3 (16490) (Windows 7/6.1) (x86)
Accept-Encoding: gzip,deflate

<!DOCTYPE html>

If I PUT the file using cURL, the header gets added correctly:

> curl -i -X PUT -T myfile.htm -H "X-Auth-Token: ..." -H "Access-Control-Allow-Origin: *"
HTTP/1.1 201 Created

> curl -i -X HEAD -H "X-Auth-Token: ..."
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Content-Type: text/html

Change History (10)

comment:1 Changed on Jan 23, 2015 at 9:57:13 AM by dkocher

  • Milestone set to 4.6.4
  • Resolution set to fixed
  • Status changed from new to closed

This is a documentation error. The correct property name is openstack.metadata.default.

comment:3 follow-up: Changed on Jan 28, 2015 at 8:58:58 AM by Olga

  • Resolution fixed deleted
  • Status changed from closed to reopened

openstack.metadata.default doesn't work for me. The header isn't PUT/POSTed during upload.

comment:4 Changed on Jan 28, 2015 at 2:25:07 PM by dkocher

Added test in r16621.

comment:5 in reply to: ↑ 3 Changed on Jan 28, 2015 at 2:25:33 PM by dkocher

Replying to Olga:

openstack.metadata.default doesn't work for me. The header isn't PUT/POSTed during upload.

Have you restarted Cyberduck after making the changes?

comment:6 Changed on Jan 29, 2015 at 8:30:35 AM by Olga

I close Cyberduck before editing the config file.

I tried (in turns) the CORS header:

<setting name="CdSettings" serializeAs="Xml">
      <setting name="openstack.metadata.default" value="Access-Control-Allow-Origin=*" />

and the example from the documentation:

<setting name="openstack.metadata.default" value="Creator=Cyberduck" />

Also updated to 4.6.4. But the PUT request is the same - without this header.

Any ideas?

comment:7 Changed on Jan 29, 2015 at 2:26:19 PM by yla

I'm unable to reproduce the issue. Works for me. Are you sure that you have edited the correct user.config?


The issue is reported against 4.6.3 but apparently you changed the 4.6.1 settings. Can you please update to 4.6.4 and edit the appropriate user.config.

comment:8 Changed on Jan 29, 2015 at 3:02:44 PM by dkocher

  • Resolution set to worksforme
  • Status changed from reopened to closed

comment:9 follow-up: Changed on Jan 29, 2015 at 3:21:33 PM by Olga

OK, there seems to be another doc error here:

It says on Windows 7 the user.config lives in %APPDATA%\Cyberduck\…, but it's actually in %APPDATA%\iterate_GmbH\…, separately from all other app support files:


The path must have been changed in 4.6.2 or 4.6.3.

So I was editing a wrong file left over from 4.6.1. After I changed the correct file the currently installed version 4.6.4, it worked.


Last edited on Jan 29, 2015 at 3:25:45 PM by Olga (previous) (diff)

comment:10 in reply to: ↑ 9 Changed on Jan 29, 2015 at 4:32:54 PM by dkocher

Note: See TracTickets for help on using tickets.