Cyberduck Mountain Duck CLI

#5374 closed defect (fixed)

Support for s3sync.rb directories

Reported by: Owned by: dkocher
Priority: normal Milestone: 3.8
Component: s3 Version: 3.7
Severity: normal Keywords:
Cc: Architecture: Intel
Platform: Mac OS X 10.6


s3sync.rb ( is a cross-platform Ruby program that easily transfers directories between a local directory and an Amazon S3 bucket:prefix. I greatly recommend s3sync for any big S3 synchronization tasks.

Cyberduck (tested version 3.7 / 7380) does not yet support S3 directories created by s3sync, even though they are correctly displayed as directories in e.g. S3Fox (S3 Firefox plugin). The developer of s3sync quotes in his README:

In S3 there's no actual concept of folders, just keys and nodes. So, every tool
uses its own proprietary way of storing dir info (my scheme being the best
naturally) and in general the methods are not compatible.

s3sync seems to store directories as dummy nodes that all contain the same directory string "{E40327BF-517A-46e8-A6C3-AF51BC263F59}". See code snippets of s3sync.rb:

	$S3syncDirString = '{E40327BF-517A-46e8-A6C3-AF51BC263F59}'
	$S3syncDirTag = 'd66759af42f282e1ba19144df2d405d0'
	$S3syncDirFile ="s3sync")
	$S3syncDirFile.puts $S3syncDirString
	$S3syncDirFile.close # not final; we need this file again to 'put' directory nodes


		def directory?()
			@tag == $S3syncDirTag and @size == $S3syncDirString.length


				# all s3 directories are dummy nodes contain the same directory string
				# so for easy comparison, set our size and tag thusly
				@size = $S3syncDirString.length
				@tag = $S3syncDirTag

It would be great if Cyberduck would support those directories as well in the future.

thanks! Regards, Philip

Attachments (1)

cyberduck37_s3sync.png (143.6 KB) - added by on Oct 24, 2010 at 1:45:41 PM.

Download all attachments as: .zip

Change History (3)

Changed on Oct 24, 2010 at 1:45:41 PM by

comment:1 Changed on Oct 24, 2010 at 5:14:27 PM by dkocher

  • Status changed from new to assigned

comment:2 Changed on Oct 26, 2010 at 4:44:27 PM by dkocher

  • Resolution set to fixed
  • Status changed from assigned to closed

In r7407.

Note: See TracTickets for help on using tickets.