<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:old.nabble.com,2006:forum-24324</id>
	<title>Nabble - JetS3t</title>
	<updated>2009-10-03T05:45:03Z</updated>
	<link rel="self" type="application/atom+xml" href="http://old.nabble.com/JetS3t-f24324.xml" />
	<link rel="alternate" type="text/html" href="http://old.nabble.com/JetS3t-f24324.html" />
	<subtitle type="html">&lt;a href=&quot;http://jets3t.s3.amazonaws.com/index.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;JetS3t&lt;/a&gt;&amp;nbsp;is a free, open-source Java toolkit and application suite for the Amazon Simple Storage Service &amp;nbsp;(Amazon S3).
&lt;br&gt;The JetS3t toolkit provides Java programmers with a powerful yet simple API for interacting with S3 and managing data stored there.
&lt;br&gt;There are also four applications included in the JetS3t suite: &lt;a href=&quot;http://jets3t.s3.amazonaws.com/applications/applications.html#cockpit&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Cockpit&lt;/a&gt;, &amp;nbsp;&lt;a href=&quot;http://jets3t.s3.amazonaws.com/applications/applications.html#synchronize&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Synchronize&lt;/a&gt;, &amp;nbsp;&lt;a href=&quot;http://jets3t.s3.amazonaws.com/applications/applications.html#uploader&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Uploader&lt;/a&gt;&amp;nbsp;and &lt;a href=&quot;http://jets3t.s3.amazonaws.com/applications/applications.html#gatekeeper&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Gatekeeper&lt;/a&gt;</subtitle>
	
<entry>
	<id>tag:old.nabble.com,2006:post-25728435</id>
	<title>Re: Create Torrent URL broken</title>
	<published>2009-10-03T05:45:03Z</published>
	<updated>2009-10-03T05:45:03Z</updated>
	<author>
		<name>David Kocher-2</name>
	</author>
	<content type="html">Thanks for the quick fix.
&lt;br&gt;&lt;br&gt;On 03.10.2009, at 03:47, James Murty wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Thanks for the bug report David, I have found and fixed this issue &amp;nbsp;
&lt;br&gt;&amp;gt; in the
&lt;br&gt;&amp;gt; latest code.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; A basic log bug caused invalid Torrent URLs to be generated for
&lt;br&gt;&amp;gt; DNS-compatible bucket names, whereas bucket names that could not &amp;nbsp;
&lt;br&gt;&amp;gt; constitute
&lt;br&gt;&amp;gt; host names would produce valid URLs.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Cheers,
&lt;br&gt;&amp;gt; James
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Fri, Oct 2, 2009 at 9:14 AM, David Kocher &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25728435&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dkocher@...&lt;/a&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Looks like createTorrentUrl is broken and always missing the bucket &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; name
&lt;br&gt;&amp;gt;&amp;gt; neither inserting it in the hostname nor in the path.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ~ David
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt; &lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;smime.p7s&lt;/strong&gt; (3K) &lt;a href=&quot;http://old.nabble.com/attachment/25728435/0/smime.p7s&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/JetS3t-Development-f24325.html&quot; embed=&quot;fixTarget[24325]&quot; target=&quot;_top&quot; &gt;JetS3t Development&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Create-Torrent-URL-broken-tp25718433p25728435.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25724981</id>
	<title>Re: Create Torrent URL broken</title>
	<published>2009-10-02T18:47:55Z</published>
	<updated>2009-10-02T18:47:55Z</updated>
	<author>
		<name>James Murty-2</name>
	</author>
	<content type="html">Thanks for the bug report David, I have found and fixed this issue in the latest code.&lt;br&gt;&lt;br&gt;A basic log bug caused invalid Torrent URLs to be generated for DNS-compatible bucket names, whereas bucket names that could not constitute host names would produce valid URLs.&lt;br clear=&quot;all&quot;&gt;

&lt;br&gt;Cheers,&lt;br&gt;James&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Fri, Oct 2, 2009 at 9:14 AM, David Kocher &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25724981&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dkocher@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;

Looks like createTorrentUrl is broken and always missing the bucket name neither inserting it in the hostname nor in the path.&lt;br&gt;&lt;font color=&quot;#888888&quot;&gt;
&lt;br&gt;
~ David&lt;/font&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/JetS3t-Development-f24325.html&quot; embed=&quot;fixTarget[24325]&quot; target=&quot;_top&quot; &gt;JetS3t Development&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Create-Torrent-URL-broken-tp25718433p25724981.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25718433</id>
	<title>Create Torrent URL broken</title>
	<published>2009-10-02T09:14:50Z</published>
	<updated>2009-10-02T09:14:50Z</updated>
	<author>
		<name>David Kocher-2</name>
	</author>
	<content type="html">Looks like createTorrentUrl is broken and always missing the bucket &amp;nbsp;
&lt;br&gt;name neither inserting it in the hostname nor in the path.
&lt;br&gt;&lt;br&gt;~ David&lt;br /&gt; &lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;smime.p7s&lt;/strong&gt; (3K) &lt;a href=&quot;http://old.nabble.com/attachment/25718433/0/smime.p7s&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/JetS3t-Development-f24325.html&quot; embed=&quot;fixTarget[24325]&quot; target=&quot;_top&quot; &gt;JetS3t Development&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Create-Torrent-URL-broken-tp25718433p25718433.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25709961</id>
	<title>Re: log files...suppression</title>
	<published>2009-10-01T20:00:17Z</published>
	<updated>2009-10-01T20:00:17Z</updated>
	<author>
		<name>James Murty-2</name>
	</author>
	<content type="html">Hi Doug,&lt;br&gt;&lt;br&gt;If the log files you want to sync to S3 have different names from others you don&amp;#39;t need to sync (or can recognized as being already synced) you can be quite selective about which files are uploaded by using wildcards to limit the files Synchronize pays attention to on the client side. For example:&lt;br&gt;

&lt;br&gt;synchronize.sh UP bucket-name P*.log&lt;br&gt;&lt;br&gt;An even better solution might be possible if the log files include a date/timestamp component. Then you could focus on exactly the log files produced within a given time period and ignore everything else:&lt;br&gt;

&lt;br&gt;
synchronize.sh UP bucket-name *2009-10-01*.log&lt;br&gt;&lt;br&gt;Even if the files don&amp;#39;t have timestamps, you could accomplish something similar by using the &amp;quot;find&amp;quot; command to locate files created within the last day -- assuming you are on a Linux/Unix system that has this command available -- and then provide the resulting file listing to Synchronize:&lt;br&gt;

&lt;br&gt;find /var/logs -ctime -1d | xargs sh synchronize.sh UP bucket-name&lt;br&gt;&lt;br&gt;If you combine client-side filtering of files with some partitioning of your S3 bucket into different &amp;quot;subdirectory&amp;quot; paths you should be able to greatly speed up your synchronization process.&lt;br&gt;

&lt;br&gt;*** Just be sure to remember the --nodelete option whenever you use a
Synchronize command that limits the file selection locally, otherwise
Synchronize will remove files in S3 that were not included in the local
file listing. ***&lt;br&gt;
&lt;br&gt;James&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Thu, Oct 1, 2009 at 3:09 PM, doughenderson &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25709961&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dhenderson@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;

&lt;br&gt;
Hello James,&lt;br&gt;
&lt;br&gt;
Yes, that is correct.&lt;br&gt;
The unforeseen problem was that we would have so many&lt;br&gt;
log files as to be unmanageable (in just a few months).&lt;br&gt;
So our automation of all downloads in production is hard&lt;br&gt;
to change (it&amp;#39;s live) and a logging solution from a third party&lt;br&gt;
has them in the root. One thought we had, although half-baked,&lt;br&gt;
was to rename the log files zlog/... and use the your batch method&lt;br&gt;
supplied, assuming that our product files would be updated&lt;br&gt;
quicker in batches and also come to be processed before the&lt;br&gt;
zlog files. Since the product name begin with &amp;#39;P&amp;#39; and &amp;#39;S&amp;#39; does&lt;br&gt;
this seem possible? Perhaps I misunderstand the nature of the&lt;br&gt;
synching and this won&amp;#39;t work, but I don&amp;#39;t mind if it takes 6 hours&lt;br&gt;
as long as our files are found and processed in a few hours.&lt;br&gt;
&lt;br&gt;
Thanks,&lt;br&gt;
&lt;br&gt;
Doug&lt;br&gt;
&lt;br&gt;
p.s. we will also investigate trimmng the oldest log files&lt;br&gt;
&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;h5&quot;&gt;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
James Murty-3 wrote:&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Hi Doug,&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; If I understand correctly, your sync process is being delayed because your&lt;br&gt;
&amp;gt; bucket contains a large number of S3 log files and Sychronize has to list&lt;br&gt;
&amp;gt; all these to decide what to upload?&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; The problem is that Synchronize needs to list and examine the contents of&lt;br&gt;
&amp;gt; the target S3 bucket or path before it can determine what action to take,&lt;br&gt;
&amp;gt; and listing large numbers of objects can take a long time. You could&lt;br&gt;
&amp;gt; modify&lt;br&gt;
&amp;gt; the source code to ignore certain files (e.g. log files) but it would&lt;br&gt;
&amp;gt; still&lt;br&gt;
&amp;gt; take time to obtain a listing of all these files even if their details are&lt;br&gt;
&amp;gt; not examined.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; I think the best solution would be to partition your uploads into&lt;br&gt;
&amp;gt; different&lt;br&gt;
&amp;gt; path locations in S3. If Synchronize is given a path within a bucket it&lt;br&gt;
&amp;gt; will&lt;br&gt;
&amp;gt; only list the contents at that path and will skip over everything else,&lt;br&gt;
&amp;gt; without having to list or examine all the other objects in the bucket. If&lt;br&gt;
&amp;gt; you can partition your bucket contents based on some kind of naming&lt;br&gt;
&amp;gt; scheme,&lt;br&gt;
&amp;gt; such as by year &amp;amp; month or customer name, you can divide up your bucket&lt;br&gt;
&amp;gt; into&lt;br&gt;
&amp;gt; manageable portions while still being able to find objects when you need&lt;br&gt;
&amp;gt; them.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; You can apply a path to your Synchronize uploads by adding a suffix to&lt;br&gt;
&amp;gt; your&lt;br&gt;
&amp;gt; bucket name in the command like this:&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; synchronize.sh UP bucket-name/2009/09 /path/to/files&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Hope this helps,&lt;br&gt;
&amp;gt; James&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; On Tue, Sep 29, 2009 at 4:48 PM, doughenderson&lt;br&gt;
&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25709961&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dhenderson@...&lt;/a&gt;&amp;gt;wrote:&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Hello,&lt;br&gt;
&amp;gt;&amp;gt; We have been working happily with Jets3t and synchronize (primarily) for&lt;br&gt;
&amp;gt;&amp;gt; several months&lt;br&gt;
&amp;gt;&amp;gt; now and find most things to be working just fine. There is one item I&lt;br&gt;
&amp;gt;&amp;gt; must&lt;br&gt;
&amp;gt;&amp;gt; do something&lt;br&gt;
&amp;gt;&amp;gt; about, and I hope someone has been there, done that already. When we&lt;br&gt;
&amp;gt;&amp;gt; first&lt;br&gt;
&amp;gt;&amp;gt; started our&lt;br&gt;
&amp;gt;&amp;gt; synchronize jobs too an hour or two to complete. But as time went by and&lt;br&gt;
&amp;gt;&amp;gt; the&lt;br&gt;
&amp;gt;&amp;gt; log files&lt;br&gt;
&amp;gt;&amp;gt; grew the synchronize runs run towards 5 hours to complete with over&lt;br&gt;
&amp;gt;&amp;gt; 14,000&lt;br&gt;
&amp;gt;&amp;gt; files.&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; My question is, &amp;quot;Has anyone modified synchronize to ignore log files?&amp;quot; It&lt;br&gt;
&amp;gt;&amp;gt; seems to be&lt;br&gt;
&amp;gt;&amp;gt; spending most of it&amp;#39;s time looking at them vs. synchronizing the files.&lt;br&gt;
&amp;gt;&amp;gt; If&lt;br&gt;
&amp;gt;&amp;gt; not, I will happily&lt;br&gt;
&amp;gt;&amp;gt; go explore the source files and work on it. Promise to report back my&lt;br&gt;
&amp;gt;&amp;gt; findings, and&lt;br&gt;
&amp;gt;&amp;gt; would take suggestions as to where to look to make the change.&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Thanks,&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Doug&lt;br&gt;
&amp;gt;&amp;gt; --&lt;br&gt;
&amp;gt;&amp;gt; View this message in context:&lt;br&gt;
&amp;gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/log-files...suppression-tp25672836p25672836.html&quot; target=&quot;_blank&quot;&gt;http://www.nabble.com/log-files...suppression-tp25672836p25672836.html&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt; Sent from the JetS3t Development mailing list archive at Nabble.com.&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; ---------------------------------------------------------------------&lt;br&gt;
&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25709961&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25709961&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;font color=&quot;#888888&quot;&gt;--&lt;br&gt;
View this message in context: &lt;a href=&quot;http://www.nabble.com/log-files...suppression-tp25672836p25707365.html&quot; target=&quot;_blank&quot;&gt;http://www.nabble.com/log-files...suppression-tp25672836p25707365.html&lt;/a&gt;&lt;br&gt;
&lt;/font&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;h5&quot;&gt;Sent from the JetS3t Development mailing list archive at Nabble.com.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
---------------------------------------------------------------------&lt;br&gt;
To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25709961&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;&lt;br&gt;
For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25709961&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/JetS3t-Development-f24325.html&quot; embed=&quot;fixTarget[24325]&quot; target=&quot;_top&quot; &gt;JetS3t Development&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/log-files...suppression-tp25672836p25709961.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25707365</id>
	<title>Re: log files...suppression</title>
	<published>2009-10-01T15:09:04Z</published>
	<updated>2009-10-01T15:09:04Z</updated>
	<author>
		<name>doughenderson</name>
	</author>
	<content type="html">Hello James,
&lt;br&gt;&lt;br&gt;Yes, that is correct.
&lt;br&gt;The unforeseen problem was that we would have so many
&lt;br&gt;log files as to be unmanageable (in just a few months). 
&lt;br&gt;So our automation of all downloads in production is hard
&lt;br&gt;to change (it's live) and a logging solution from a third party
&lt;br&gt;has them in the root. One thought we had, although half-baked,
&lt;br&gt;was to rename the log files zlog/... and use the your batch method
&lt;br&gt;supplied, assuming that our product files would be updated
&lt;br&gt;quicker in batches and also come to be processed before the
&lt;br&gt;zlog files. Since the product name begin with 'P' and 'S' does
&lt;br&gt;this seem possible? Perhaps I misunderstand the nature of the
&lt;br&gt;synching and this won't work, but I don't mind if it takes 6 hours
&lt;br&gt;as long as our files are found and processed in a few hours.
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;&lt;br&gt;Doug
&lt;br&gt;&lt;br&gt;p.s. we will also investigate trimmng the oldest log files
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;blockquote class=&quot;quote light-black dark-border-color&quot;&gt;&lt;div class=&quot;quote light-border-color&quot;&gt;
&lt;div class=&quot;quote-author&quot; style=&quot;font-weight: bold;&quot;&gt;James Murty-3 wrote:&lt;/div&gt;
&lt;div class=&quot;quote-message shrinkable-quote&quot;&gt;Hi Doug,
&lt;br&gt;&lt;br&gt;If I understand correctly, your sync process is being delayed because your
&lt;br&gt;bucket contains a large number of S3 log files and Sychronize has to list
&lt;br&gt;all these to decide what to upload?
&lt;br&gt;&lt;br&gt;The problem is that Synchronize needs to list and examine the contents of
&lt;br&gt;the target S3 bucket or path before it can determine what action to take,
&lt;br&gt;and listing large numbers of objects can take a long time. You could modify
&lt;br&gt;the source code to ignore certain files (e.g. log files) but it would still
&lt;br&gt;take time to obtain a listing of all these files even if their details are
&lt;br&gt;not examined.
&lt;br&gt;&lt;br&gt;I think the best solution would be to partition your uploads into different
&lt;br&gt;path locations in S3. If Synchronize is given a path within a bucket it will
&lt;br&gt;only list the contents at that path and will skip over everything else,
&lt;br&gt;without having to list or examine all the other objects in the bucket. If
&lt;br&gt;you can partition your bucket contents based on some kind of naming scheme,
&lt;br&gt;such as by year &amp; month or customer name, you can divide up your bucket into
&lt;br&gt;manageable portions while still being able to find objects when you need
&lt;br&gt;them.
&lt;br&gt;&lt;br&gt;You can apply a path to your Synchronize uploads by adding a suffix to your
&lt;br&gt;bucket name in the command like this:
&lt;br&gt;&lt;br&gt;synchronize.sh UP bucket-name/2009/09 /path/to/files
&lt;br&gt;&lt;br&gt;Hope this helps,
&lt;br&gt;James
&lt;br&gt;&lt;br&gt;&lt;br&gt;On Tue, Sep 29, 2009 at 4:48 PM, doughenderson &amp;lt;dhenderson@extensis.com&amp;gt;wrote:
&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hello,
&lt;br&gt;&amp;gt; We have been working happily with Jets3t and synchronize (primarily) for
&lt;br&gt;&amp;gt; several months
&lt;br&gt;&amp;gt; now and find most things to be working just fine. There is one item I must
&lt;br&gt;&amp;gt; do something
&lt;br&gt;&amp;gt; about, and I hope someone has been there, done that already. When we first
&lt;br&gt;&amp;gt; started our
&lt;br&gt;&amp;gt; synchronize jobs too an hour or two to complete. But as time went by and
&lt;br&gt;&amp;gt; the
&lt;br&gt;&amp;gt; log files
&lt;br&gt;&amp;gt; grew the synchronize runs run towards 5 hours to complete with over 14,000
&lt;br&gt;&amp;gt; files.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; My question is, &amp;quot;Has anyone modified synchronize to ignore log files?&amp;quot; It
&lt;br&gt;&amp;gt; seems to be
&lt;br&gt;&amp;gt; spending most of it's time looking at them vs. synchronizing the files. If
&lt;br&gt;&amp;gt; not, I will happily
&lt;br&gt;&amp;gt; go explore the source files and work on it. Promise to report back my
&lt;br&gt;&amp;gt; findings, and
&lt;br&gt;&amp;gt; would take suggestions as to where to look to make the change.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Doug
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/log-files...suppression-tp25672836p25672836.html&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/log-files...suppression-tp25672836p25672836.html&lt;/a&gt;&lt;br&gt;&amp;gt; Sent from the JetS3t Development mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: dev-unsubscribe@jets3t.dev.java.net
&lt;br&gt;&amp;gt; For additional commands, e-mail: dev-help@jets3t.dev.java.net
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/JetS3t-Development-f24325.html&quot; embed=&quot;fixTarget[24325]&quot; target=&quot;_top&quot; &gt;JetS3t Development&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/log-files...suppression-tp25672836p25707365.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25674834</id>
	<title>Re: log files...suppression</title>
	<published>2009-09-29T21:14:32Z</published>
	<updated>2009-09-29T21:14:32Z</updated>
	<author>
		<name>James Murty-3</name>
	</author>
	<content type="html">Hi Doug,&lt;br&gt;&lt;br&gt;If I understand correctly, your sync process is being delayed because your bucket contains a large number of S3 log files and Sychronize has to list all these to decide what to upload?&lt;br&gt;&lt;br&gt;The problem is that Synchronize needs to list and examine the contents of the target S3 bucket or path before it can determine what action to take, and listing large numbers of objects can take a long time. You could modify the source code to ignore certain files (e.g. log files) but it would still take time to obtain a listing of all these files even if their details are not examined.&lt;br&gt;

&lt;br&gt;I think the best solution would be to partition your uploads into different path locations in S3. If Synchronize is given a path within a bucket it will only list the contents at that path and will skip over everything else, without having to list or examine all the other objects in the bucket. If you can partition your bucket contents based on some kind of naming scheme, such as by year &amp;amp; month or customer name, you can divide up your bucket into manageable portions while still being able to find objects when you need them.&lt;br&gt;

&lt;br&gt;You can apply a path to your Synchronize uploads by adding a suffix to your bucket name in the command like this:&lt;br&gt;&lt;br&gt;synchronize.sh UP bucket-name/2009/09 /path/to/files&lt;br&gt;&lt;br&gt;Hope this helps,&lt;br&gt;James&lt;br&gt;&lt;br&gt;&lt;br&gt;

&lt;div class=&quot;gmail_quote&quot;&gt;On Tue, Sep 29, 2009 at 4:48 PM, doughenderson &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25674834&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dhenderson@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;

&lt;br&gt;
Hello,&lt;br&gt;
We have been working happily with Jets3t and synchronize (primarily) for&lt;br&gt;
several months&lt;br&gt;
now and find most things to be working just fine. There is one item I must&lt;br&gt;
do something&lt;br&gt;
about, and I hope someone has been there, done that already. When we first&lt;br&gt;
started our&lt;br&gt;
synchronize jobs too an hour or two to complete. But as time went by and the&lt;br&gt;
log files&lt;br&gt;
grew the synchronize runs run towards 5 hours to complete with over 14,000&lt;br&gt;
files.&lt;br&gt;
&lt;br&gt;
My question is, &amp;quot;Has anyone modified synchronize to ignore log files?&amp;quot; It&lt;br&gt;
seems to be&lt;br&gt;
spending most of it&amp;#39;s time looking at them vs. synchronizing the files. If&lt;br&gt;
not, I will happily&lt;br&gt;
go explore the source files and work on it. Promise to report back my&lt;br&gt;
findings, and&lt;br&gt;
would take suggestions as to where to look to make the change.&lt;br&gt;
&lt;br&gt;
Thanks,&lt;br&gt;
&lt;br&gt;
Doug&lt;br&gt;
&lt;font color=&quot;#888888&quot;&gt;--&lt;br&gt;
View this message in context: &lt;a href=&quot;http://www.nabble.com/log-files...suppression-tp25672836p25672836.html&quot; target=&quot;_blank&quot;&gt;http://www.nabble.com/log-files...suppression-tp25672836p25672836.html&lt;/a&gt;&lt;br&gt;
Sent from the JetS3t Development mailing list archive at Nabble.com.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
---------------------------------------------------------------------&lt;br&gt;
To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25674834&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;&lt;br&gt;
For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25674834&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;/font&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/JetS3t-Development-f24325.html&quot; embed=&quot;fixTarget[24325]&quot; target=&quot;_top&quot; &gt;JetS3t Development&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/log-files...suppression-tp25672836p25674834.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25672836</id>
	<title>log files...suppression</title>
	<published>2009-09-29T16:48:06Z</published>
	<updated>2009-09-29T16:48:06Z</updated>
	<author>
		<name>doughenderson</name>
	</author>
	<content type="html">Hello,
&lt;br&gt;We have been working happily with Jets3t and synchronize (primarily) for several months
&lt;br&gt;now and find most things to be working just fine. There is one item I must do something
&lt;br&gt;about, and I hope someone has been there, done that already. When we first started our
&lt;br&gt;synchronize jobs too an hour or two to complete. But as time went by and the log files
&lt;br&gt;grew the synchronize runs run towards 5 hours to complete with over 14,000 files.
&lt;br&gt;&lt;br&gt;My question is, &amp;quot;Has anyone modified synchronize to ignore log files?&amp;quot; It seems to be
&lt;br&gt;spending most of it's time looking at them vs. synchronizing the files. If not, I will happily
&lt;br&gt;go explore the source files and work on it. Promise to report back my findings, and 
&lt;br&gt;would take suggestions as to where to look to make the change.
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;&lt;br&gt;Doug&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/JetS3t-Development-f24325.html&quot; embed=&quot;fixTarget[24325]&quot; target=&quot;_top&quot; &gt;JetS3t Development&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/log-files...suppression-tp25672836p25672836.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25207524</id>
	<title>Re: NullPointer Exception in RestS3Service</title>
	<published>2009-08-29T17:18:15Z</published>
	<updated>2009-08-29T17:18:15Z</updated>
	<author>
		<name>James Murty-3</name>
	</author>
	<content type="html">I have applied a fix for this issue and made the S3ServiceException error reporting a bit more accurate in general. When response information is not available, such as when there is no Internet access, the S3ServiceException class will not print out response attributes for which it has no meaningful information.&lt;br&gt;

&lt;br&gt;Thanks very much for the bug report and suggested fix.&lt;br&gt;&lt;br&gt;James&lt;br&gt;&lt;br clear=&quot;all&quot;&gt;---&lt;br&gt;&lt;a href=&quot;http://www.jamesmurty.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.jamesmurty.com&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Wed, Aug 26, 2009 at 10:59 PM, Jawahar Nayak &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25207524&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jlal@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;

&lt;br&gt;
 In the performRequest() method of Rests3Service class if any exception is&lt;br&gt;
thrown then it constructs the instance of S3Exception. Suppose if the&lt;br&gt;
network is disabled then the exception is thrown. In catch block it&lt;br&gt;
constructs the S3ServiceException&lt;br&gt;
&lt;br&gt;
as&lt;br&gt;
&lt;br&gt;
&amp;lt;Code&amp;gt;&lt;br&gt;
&lt;br&gt;
s3ServiceException = new S3ServiceException(&amp;quot;Request Error.&amp;quot;, t);&lt;br&gt;
&lt;br&gt;
s3ServiceException.setRequestVerb(httpMethod.getName());&lt;br&gt;
&lt;br&gt;
s3ServiceException.setRequestPath(httpMethod.getPath());&lt;br&gt;
&lt;br&gt;
s3ServiceException.setResponseCode(httpMethod.getStatusCode());&lt;br&gt;
// This statement is throwing NullPointerException&lt;br&gt;
&lt;br&gt;
s3ServiceException.setResponseStatus(httpMethod.getStatusText());&lt;br&gt;
&lt;br&gt;
&amp;lt;/Code&amp;gt;&lt;br&gt;
&lt;br&gt;
The following is the exception&lt;br&gt;
&amp;lt;Exception&amp;gt;&lt;br&gt;
&lt;br&gt;
java.lang.NullPointerException&lt;br&gt;
        at&lt;br&gt;
org.apache.commons.httpclient.HttpMethodBase.getStatusCode(HttpMethodBase.java:570)&lt;br&gt;
        at&lt;br&gt;
org.jets3t.service.impl.rest.httpclient.RestS3Service.performRequest(RestS3Service.java:1064)&lt;br&gt;
        at&lt;br&gt;
org.jets3t.service.impl.rest.httpclient.RestS3Service.performRestHead(RestS3Service.java:1637)&lt;br&gt;
        at&lt;br&gt;
org.jets3t.service.impl.rest.httpclient.RestS3Service.getObjectImpl(RestS3Service.java:3373)&lt;br&gt;
        at&lt;br&gt;
org.jets3t.service.impl.rest.httpclient.RestS3Service.getObjectDetailsImpl(RestS3Service.java:3245)&lt;br&gt;
        at org.jets3t.service.S3Service.getObjectDetails(S3Service.java:1990)&lt;br&gt;
        at org.jets3t.service.S3Service.getObjectDetails(S3Service.java:1335&lt;br&gt;
&lt;br&gt;
&amp;lt;/Exception&amp;gt;&lt;br&gt;
&lt;br&gt;
if we are running upload, we always get&lt;br&gt;
&lt;br&gt;
s3ServiceEventPerformed(CreateObjectsEvent event) {&lt;br&gt;
&lt;br&gt;
// We always get event.getEventCode() == CreateObjectsEvent.EVENT_COMPLETED&lt;br&gt;
 if the network is disabled.&lt;br&gt;
&lt;br&gt;
}&lt;br&gt;
&lt;br&gt;
I fixed the problem in this way.&lt;br&gt;
          try{&lt;br&gt;
&lt;br&gt;
s3ServiceException.setResponseCode(httpMethod.getStatusCode());&lt;br&gt;
            }catch(NullPointerException ne){&lt;br&gt;
                s3ServiceException.setResponseCode(404);&lt;br&gt;
            }&lt;br&gt;
&lt;br&gt;
            try{&lt;br&gt;
&lt;br&gt;
s3ServiceException.setResponseStatus(httpMethod.getStatusText());&lt;br&gt;
            }catch(NullPointerException ne){&lt;br&gt;
                s3ServiceException.setResponseStatus(&amp;quot;Network Problem&amp;quot;);&lt;br&gt;
            }&lt;br&gt;
&lt;br&gt;
Its working for me.&lt;br&gt;
&lt;font color=&quot;#888888&quot;&gt;--&lt;br&gt;
View this message in context: &lt;a href=&quot;http://www.nabble.com/NullPointer-Exception-in-RestS3Service-tp25166654p25166654.html&quot; target=&quot;_blank&quot;&gt;http://www.nabble.com/NullPointer-Exception-in-RestS3Service-tp25166654p25166654.html&lt;/a&gt;&lt;br&gt;


Sent from the JetS3t Users mailing list archive at Nabble.com.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
---------------------------------------------------------------------&lt;br&gt;
To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25207524&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-unsubscribe@...&lt;/a&gt;&lt;br&gt;
For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25207524&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-help@...&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;/font&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/JetS3t-Users-f24326.html&quot; embed=&quot;fixTarget[24326]&quot; target=&quot;_top&quot; &gt;JetS3t Users&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/NullPointer-Exception-in-RestS3Service-tp25166654p25207524.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25166654</id>
	<title>NullPointer Exception in RestS3Service</title>
	<published>2009-08-26T22:59:06Z</published>
	<updated>2009-08-26T22:59:06Z</updated>
	<author>
		<name>Jawahar Nayak</name>
	</author>
	<content type="html">&amp;nbsp;In the performRequest() method of Rests3Service class if any exception is thrown then it constructs the instance of S3Exception. Suppose if the network is disabled then the exception is thrown. In catch block it constructs the S3ServiceException 
&lt;br&gt;&lt;br&gt;as
&lt;br&gt;&lt;br&gt;&lt;b&gt;&amp;lt;Code&amp;gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;s3ServiceException = new S3ServiceException(&amp;quot;Request Error.&amp;quot;, t); 
&lt;br&gt;&lt;br&gt;s3ServiceException.setRequestVerb(httpMethod.getName());
&lt;br&gt;&lt;br&gt;s3ServiceException.setRequestPath(httpMethod.getPath());
&lt;br&gt;&lt;br&gt;s3ServiceException.setResponseCode(httpMethod.getStatusCode());
&lt;br&gt;// This statement is throwing NullPointerException
&lt;br&gt;&lt;br&gt;s3ServiceException.setResponseStatus(httpMethod.getStatusText());
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;b&gt;&amp;lt;/Code&amp;gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;The following is the exception
&lt;br&gt;&lt;b&gt;&amp;lt;Exception&amp;gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;java.lang.NullPointerException
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.commons.httpclient.HttpMethodBase.getStatusCode(HttpMethodBase.java:570)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.jets3t.service.impl.rest.httpclient.RestS3Service.performRequest(RestS3Service.java:1064)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.jets3t.service.impl.rest.httpclient.RestS3Service.performRestHead(RestS3Service.java:1637)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.jets3t.service.impl.rest.httpclient.RestS3Service.getObjectImpl(RestS3Service.java:3373)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.jets3t.service.impl.rest.httpclient.RestS3Service.getObjectDetailsImpl(RestS3Service.java:3245)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.jets3t.service.S3Service.getObjectDetails(S3Service.java:1990)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.jets3t.service.S3Service.getObjectDetails(S3Service.java:1335
&lt;br&gt;&lt;br&gt;&lt;b&gt;&amp;lt;/Exception&amp;gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;if we are running upload, we always get
&lt;br&gt;&lt;br&gt;s3ServiceEventPerformed(CreateObjectsEvent event) {
&lt;br&gt;&lt;br&gt;// We always get event.getEventCode() == CreateObjectsEvent.EVENT_COMPLETED
&lt;br&gt;&amp;nbsp;if the network is disabled.
&lt;br&gt;&lt;br&gt;}
&lt;br&gt;&lt;br&gt;&lt;b&gt;I fixed the problem in this way.&lt;/b&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; try{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; s3ServiceException.setResponseCode(httpMethod.getStatusCode());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }catch(NullPointerException ne){
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; s3ServiceException.setResponseCode(404);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; try{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; s3ServiceException.setResponseStatus(httpMethod.getStatusText());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }catch(NullPointerException ne){
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; s3ServiceException.setResponseStatus(&amp;quot;Network Problem&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } 
&lt;br&gt;&lt;br&gt;Its working for me. &lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/JetS3t-Users-f24326.html&quot; embed=&quot;fixTarget[24326]&quot; target=&quot;_top&quot; &gt;JetS3t Users&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/NullPointer-Exception-in-RestS3Service-tp25166654p25166654.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-24786065</id>
	<title>Re: Changes in Jets3t code for TargetGrant in BucketLogging</title>
	<published>2009-08-02T23:39:24Z</published>
	<updated>2009-08-02T23:39:24Z</updated>
	<author>
		<name>James Murty-2</name>
	</author>
	<content type="html">Hi Jawahar, &lt;br&gt;&lt;br&gt;I have added support for TargetBuckets to JetS3t&amp;#39;s codebase in CVS. Note that the code changes are slightly different from the code you provided.&lt;br&gt;&lt;br&gt;Please confirm whether this update works for you.&lt;br&gt;

&lt;br&gt;Thanks,&lt;br&gt;James&lt;br&gt;&lt;br clear=&quot;all&quot;&gt;---&lt;br&gt;&lt;a href=&quot;http://www.jamesmurty.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.jamesmurty.com&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Fri, Jul 31, 2009 at 4:32 AM, Jawahar Nayak &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=24786065&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jlal@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;

&lt;br&gt;
Hi James,&lt;br&gt;
&lt;br&gt;
  You can include my submission in the JetS3t.&lt;br&gt;
&lt;br&gt;
Thanks&lt;br&gt;
&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;h5&quot;&gt;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
James Murty-3 wrote:&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Hi Jawahar,&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Thanks for the code submission, I will look into adding TargetGrants&lt;br&gt;
&amp;gt; support&lt;br&gt;
&amp;gt; into JetS3t over the next few days.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Can you please confirm for me that you grant all rights for your&lt;br&gt;
&amp;gt; submission&lt;br&gt;
&amp;gt; to be included in JetS3t and distributed under the Apache 2.0 license?&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Thanks,&lt;br&gt;
&amp;gt; James&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; ---&lt;br&gt;
&amp;gt; &lt;a href=&quot;http://www.jamesmurty.com&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://www.jamesmurty.com&lt;/a&gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; On Thu, Jul 30, 2009 at 3:07 AM, Jawahar Nayak &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=24786065&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jlal@...&lt;/a&gt;&amp;gt; wrote:&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Hi,&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;  I am Jawahar Lal Nayak. I am using the latest version of Jets3t and I&lt;br&gt;
&amp;gt;&amp;gt; made&lt;br&gt;
&amp;gt;&amp;gt; changes regarding TragetGrants for bucket logging in jets3t source:&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; -----------------------------------------------------------------------------------------------&lt;br&gt;
&amp;gt;&amp;gt; Class: org\jets3t\service\model\S3BucketLoggingStatus.java&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; -----------------------------------------------------------------------------------------------&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; //Added one instance varriable:&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; private Set trangetGrants;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; // Added set and get methods for trangetGrants;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;   public void setTrangetGrants(Set targetgrants) {&lt;br&gt;
&amp;gt;&amp;gt;        trangetGrants= targetgrants;&lt;br&gt;
&amp;gt;&amp;gt;    }&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;    public Set getTrangetGrants() {&lt;br&gt;
&amp;gt;&amp;gt;        return trangetGrants;&lt;br&gt;
&amp;gt;&amp;gt;    }&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; // Modified the toString() method&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; public String toXml() {&lt;br&gt;
&amp;gt;&amp;gt;        boolean bAddGrantACL = false;&lt;br&gt;
&amp;gt;&amp;gt;        StringBuffer sb = new StringBuffer();&lt;br&gt;
&amp;gt;&amp;gt;        StringBuffer strGrantACL = new StringBuffer();&lt;br&gt;
&amp;gt;&amp;gt;        if (isLoggingEnabled() &amp;amp;&amp;amp; (trangetGrants != null &amp;amp;&amp;amp;&lt;br&gt;
&amp;gt;&amp;gt; trangetGrants.size() &amp;gt; 0)) {&lt;br&gt;
&amp;gt;&amp;gt;            bAddGrantACL = true;&lt;br&gt;
&amp;gt;&amp;gt;            strGrantACL.append(&amp;quot;&amp;lt;TargetGrants&amp;gt;&amp;quot;);&lt;br&gt;
&amp;gt;&amp;gt;            Iterator grantIter = trangetGrants.iterator();&lt;br&gt;
&amp;gt;&amp;gt;            while (grantIter.hasNext()) {&lt;br&gt;
&amp;gt;&amp;gt;                GrantAndPermission gap = (GrantAndPermission)&lt;br&gt;
&amp;gt;&amp;gt; grantIter.next();&lt;br&gt;
&amp;gt;&amp;gt;                GranteeInterface grantee = gap.getGrantee();&lt;br&gt;
&amp;gt;&amp;gt;                Permission permission = gap.getPermission();&lt;br&gt;
&amp;gt;&amp;gt;                strGrantACL.append(&lt;br&gt;
&amp;gt;&amp;gt;                        &amp;quot;&amp;lt;Grant&amp;gt;&amp;quot; +&lt;br&gt;
&amp;gt;&amp;gt;                        grantee.toXml() +&lt;br&gt;
&amp;gt;&amp;gt;                        &amp;quot;&amp;lt;Permission&amp;gt;&amp;quot; + permission + &amp;quot;&amp;lt;/Permission&amp;gt;&amp;quot; +&lt;br&gt;
&amp;gt;&amp;gt;                        &amp;quot;&amp;lt;/Grant&amp;gt;&amp;quot;);&lt;br&gt;
&amp;gt;&amp;gt;            }&lt;br&gt;
&amp;gt;&amp;gt;            strGrantACL.append(&amp;quot;&amp;lt;/TargetGrants&amp;gt;&amp;quot;);&lt;br&gt;
&amp;gt;&amp;gt;        }&lt;br&gt;
&amp;gt;&amp;gt;        sb.append(&lt;br&gt;
&amp;gt;&amp;gt;                &amp;quot;&amp;lt;BucketLoggingStatus xmlns=\&amp;quot;&amp;quot; + Constants.XML_NAMESPACE&lt;br&gt;
&amp;gt;&amp;gt; +&lt;br&gt;
&amp;gt;&amp;gt; &amp;quot;\&amp;quot;&amp;gt;&amp;quot; +&lt;br&gt;
&amp;gt;&amp;gt;                (!isLoggingEnabled() ? &amp;quot;&amp;quot; : &amp;quot;&amp;lt;LoggingEnabled&amp;gt;&amp;quot; +&lt;br&gt;
&amp;gt;&amp;gt;                &amp;quot;&amp;lt;TargetBucket&amp;gt;&amp;quot; + getTargetBucketName() +&lt;br&gt;
&amp;gt;&amp;gt; &amp;quot;&amp;lt;/TargetBucket&amp;gt;&amp;quot;&lt;br&gt;
&amp;gt;&amp;gt; +&lt;br&gt;
&amp;gt;&amp;gt;                &amp;quot;&amp;lt;TargetPrefix&amp;gt;&amp;quot; + getLogfilePrefix() + &amp;quot;&amp;lt;/TargetPrefix&amp;gt;&amp;quot;&lt;br&gt;
&amp;gt;&amp;gt; +&lt;br&gt;
&amp;gt;&amp;gt;                (bAddGrantACL ? strGrantACL.toString() : &amp;quot;&amp;quot;) +&lt;br&gt;
&amp;gt;&amp;gt;                &amp;quot;&amp;lt;/LoggingEnabled&amp;gt;&amp;quot;) +&lt;br&gt;
&amp;gt;&amp;gt;                &amp;quot;&amp;lt;/BucketLoggingStatus&amp;gt;&amp;quot;);&lt;br&gt;
&amp;gt;&amp;gt;        return sb.toString();&lt;br&gt;
&amp;gt;&amp;gt;    }&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; ---------------------------------------------------------------------------------------------------&lt;br&gt;
&amp;gt;&amp;gt; Class: org\jets3t\service\impl\rest\XmlResponsesSaxParser.java&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; ---------------------------------------------------------------------------------------------------&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; // Following is the complete class with changes&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;    public class BucketLoggingStatusHandler extends DefaultHandler {&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;        private S3BucketLoggingStatus bucketLoggingStatus = null;&lt;br&gt;
&amp;gt;&amp;gt;        private String targetBucket = null;&lt;br&gt;
&amp;gt;&amp;gt;        private String targetPrefix = null;&lt;br&gt;
&amp;gt;&amp;gt;        private StringBuffer currText = null;&lt;br&gt;
&amp;gt;&amp;gt;        private GranteeInterface currentGrantee = null;&lt;br&gt;
&amp;gt;&amp;gt;        private Permission currentPermission = null;&lt;br&gt;
&amp;gt;&amp;gt;        private GrantAndPermission currentGrantAndPermission=null;&lt;br&gt;
&amp;gt;&amp;gt;        private Set trangetGrants = null;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;        public BucketLoggingStatusHandler() {&lt;br&gt;
&amp;gt;&amp;gt;            super();&lt;br&gt;
&amp;gt;&amp;gt;            this.currText = new StringBuffer();&lt;br&gt;
&amp;gt;&amp;gt;        }&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;        /**&lt;br&gt;
&amp;gt;&amp;gt;         * @return&lt;br&gt;
&amp;gt;&amp;gt;         * an object representing the bucket&amp;#39;s LoggingStatus document.&lt;br&gt;
&amp;gt;&amp;gt;         */&lt;br&gt;
&amp;gt;&amp;gt;        public S3BucketLoggingStatus getBucketLoggingStatus() {&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;            return bucketLoggingStatus;&lt;br&gt;
&amp;gt;&amp;gt;        }&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;        public void startDocument() {&lt;br&gt;
&amp;gt;&amp;gt;        }&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;        public void endDocument() {&lt;br&gt;
&amp;gt;&amp;gt;        }&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;        public void startElement(String uri, String name, String qName,&lt;br&gt;
&amp;gt;&amp;gt; Attributes attrs) {&lt;br&gt;
&amp;gt;&amp;gt;            if (name.equals(&amp;quot;BucketLoggingStatus&amp;quot;)) {&lt;br&gt;
&amp;gt;&amp;gt;                bucketLoggingStatus = new S3BucketLoggingStatus();&lt;br&gt;
&amp;gt;&amp;gt;            } else if (name.equals(&amp;quot;TargetGrants&amp;quot;)) {&lt;br&gt;
&amp;gt;&amp;gt;                trangetGrants = new HashSet();&lt;br&gt;
&amp;gt;&amp;gt;            }&lt;br&gt;
&amp;gt;&amp;gt;        }&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;        public void endElement(String uri, String name, String qName) {&lt;br&gt;
&amp;gt;&amp;gt;            String elementText = this.currText.toString();&lt;br&gt;
&amp;gt;&amp;gt;            if (name.equals(&amp;quot;TargetBucket&amp;quot;)) {&lt;br&gt;
&amp;gt;&amp;gt;                targetBucket = elementText;&lt;br&gt;
&amp;gt;&amp;gt;            } else if (name.equals(&amp;quot;TargetPrefix&amp;quot;)) {&lt;br&gt;
&amp;gt;&amp;gt;                targetPrefix = elementText;&lt;br&gt;
&amp;gt;&amp;gt;            } else if (name.equals(&amp;quot;LoggingEnabled&amp;quot;)) {&lt;br&gt;
&amp;gt;&amp;gt;                bucketLoggingStatus.setTargetBucketName(targetBucket);&lt;br&gt;
&amp;gt;&amp;gt;                bucketLoggingStatus.setLogfilePrefix(targetPrefix);&lt;br&gt;
&amp;gt;&amp;gt;            } else if (name.equals(&amp;quot;ID&amp;quot;)) {&lt;br&gt;
&amp;gt;&amp;gt;                currentGrantee = new CanonicalGrantee();&lt;br&gt;
&amp;gt;&amp;gt;                currentGrantee.setIdentifier(elementText);&lt;br&gt;
&amp;gt;&amp;gt;            } else if (name.equals(&amp;quot;EmailAddress&amp;quot;)) {&lt;br&gt;
&amp;gt;&amp;gt;                currentGrantee = new EmailAddressGrantee();&lt;br&gt;
&amp;gt;&amp;gt;                currentGrantee.setIdentifier(elementText);&lt;br&gt;
&amp;gt;&amp;gt;            } else if (name.equals(&amp;quot;DisplayName&amp;quot;)) {&lt;br&gt;
&amp;gt;&amp;gt;                ((CanonicalGrantee)&lt;br&gt;
&amp;gt;&amp;gt; currentGrantee).setDisplayName(elementText);&lt;br&gt;
&amp;gt;&amp;gt;            } else if (name.equals(&amp;quot;Permission&amp;quot;)) {&lt;br&gt;
&amp;gt;&amp;gt;                currentPermission =&lt;br&gt;
&amp;gt;&amp;gt; Permission.parsePermission(elementText);&lt;br&gt;
&amp;gt;&amp;gt;            }else if (name.equals(&amp;quot;Grant&amp;quot;)) {&lt;br&gt;
&amp;gt;&amp;gt;                currentGrantAndPermission = new&lt;br&gt;
&amp;gt;&amp;gt; GrantAndPermission(currentGrantee, currentPermission);&lt;br&gt;
&amp;gt;&amp;gt;                trangetGrants.add(currentGrantAndPermission);&lt;br&gt;
&amp;gt;&amp;gt;            }else if(name.equals(&amp;quot;TargetGrants&amp;quot;)){&lt;br&gt;
&amp;gt;&amp;gt;                bucketLoggingStatus.setGrants(trangetGrants);&lt;br&gt;
&amp;gt;&amp;gt;            }&lt;br&gt;
&amp;gt;&amp;gt;            this.currText = new StringBuffer();&lt;br&gt;
&amp;gt;&amp;gt;        }&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;        public void characters(char ch[], int start, int length) {&lt;br&gt;
&amp;gt;&amp;gt;            this.currText.append(ch, start, length);&lt;br&gt;
&amp;gt;&amp;gt;        }&lt;br&gt;
&amp;gt;&amp;gt;    }&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Thanks&lt;br&gt;
&amp;gt;&amp;gt; --&lt;br&gt;
&amp;gt;&amp;gt; View this message in context:&lt;br&gt;
&amp;gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/Changes-in-Jets3t-code-for-TargetGrant-in-BucketLogging-tp24735589p24735589.html&quot; target=&quot;_blank&quot;&gt;http://www.nabble.com/Changes-in-Jets3t-code-for-TargetGrant-in-BucketLogging-tp24735589p24735589.html&lt;/a&gt;&lt;br&gt;


&amp;gt;&amp;gt; Sent from the JetS3t Users mailing list archive at Nabble.com.&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; ---------------------------------------------------------------------&lt;br&gt;
&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=24786065&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-unsubscribe@...&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=24786065&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-help@...&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;font color=&quot;#888888&quot;&gt;--&lt;br&gt;
View this message in context: &lt;a href=&quot;http://www.nabble.com/Changes-in-Jets3t-code-for-TargetGrant-in-BucketLogging-tp24735589p24754953.html&quot; target=&quot;_blank&quot;&gt;http://www.nabble.com/Changes-in-Jets3t-code-for-TargetGrant-in-BucketLogging-tp24735589p24754953.html&lt;/a&gt;&lt;br&gt;


&lt;/font&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;h5&quot;&gt;Sent from the JetS3t Users mailing list archive at Nabble.com.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
---------------------------------------------------------------------&lt;br&gt;
To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=24786065&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-unsubscribe@...&lt;/a&gt;&lt;br&gt;
For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=24786065&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-help@...&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/JetS3t-Users-f24326.html&quot; embed=&quot;fixTarget[24326]&quot; target=&quot;_top&quot; &gt;JetS3t Users&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Changes-in-Jets3t-code-for-TargetGrant-in-BucketLogging-tp24735589p24786065.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-24754953</id>
	<title>Re: Changes in Jets3t code for TargetGrant in BucketLogging</title>
	<published>2009-07-31T04:32:51Z</published>
	<updated>2009-07-31T04:32:51Z</updated>
	<author>
		<name>Jawahar Nayak</name>
	</author>
	<content type="html">Hi James,
&lt;br&gt;&lt;br&gt;&amp;nbsp; You can include my submission in the JetS3t.
&lt;br&gt;&lt;br&gt;Thanks
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;blockquote class=&quot;quote light-black dark-border-color&quot;&gt;&lt;div class=&quot;quote light-border-color&quot;&gt;
&lt;div class=&quot;quote-author&quot; style=&quot;font-weight: bold;&quot;&gt;James Murty-3 wrote:&lt;/div&gt;
&lt;div class=&quot;quote-message shrinkable-quote&quot;&gt;Hi Jawahar,
&lt;br&gt;&lt;br&gt;Thanks for the code submission, I will look into adding TargetGrants support
&lt;br&gt;into JetS3t over the next few days.
&lt;br&gt;&lt;br&gt;Can you please confirm for me that you grant all rights for your submission
&lt;br&gt;to be included in JetS3t and distributed under the Apache 2.0 license?
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;James
&lt;br&gt;&lt;br&gt;---
&lt;br&gt;&lt;a href=&quot;http://www.jamesmurty.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.jamesmurty.com&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;On Thu, Jul 30, 2009 at 3:07 AM, Jawahar Nayak &amp;lt;jlal@chambal.com&amp;gt; wrote:
&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;I am Jawahar Lal Nayak. I am using the latest version of Jets3t and I made
&lt;br&gt;&amp;gt; changes regarding TragetGrants for bucket logging in jets3t source:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; -----------------------------------------------------------------------------------------------
&lt;br&gt;&amp;gt; Class: org\jets3t\service\model\S3BucketLoggingStatus.java
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; -----------------------------------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; //Added one instance varriable:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; private Set trangetGrants;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; // Added set and get methods for trangetGrants;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; public void setTrangetGrants(Set targetgrants) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;trangetGrants= targetgrants;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;public Set getTrangetGrants() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return trangetGrants;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; // Modified the toString() method
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; public String toXml() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean bAddGrantACL = false;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StringBuffer sb = new StringBuffer();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StringBuffer strGrantACL = new StringBuffer();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (isLoggingEnabled() &amp;&amp; (trangetGrants != null &amp;&amp;
&lt;br&gt;&amp;gt; trangetGrants.size() &amp;gt; 0)) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bAddGrantACL = true;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;strGrantACL.append(&amp;quot;&amp;lt;TargetGrants&amp;gt;&amp;quot;);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Iterator grantIter = trangetGrants.iterator();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while (grantIter.hasNext()) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;GrantAndPermission gap = (GrantAndPermission)
&lt;br&gt;&amp;gt; grantIter.next();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;GranteeInterface grantee = gap.getGrantee();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Permission permission = gap.getPermission();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;strGrantACL.append(
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;&amp;lt;Grant&amp;gt;&amp;quot; +
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;grantee.toXml() +
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;&amp;lt;Permission&amp;gt;&amp;quot; + permission + &amp;quot;&amp;lt;/Permission&amp;gt;&amp;quot; +
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;&amp;lt;/Grant&amp;gt;&amp;quot;);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;strGrantACL.append(&amp;quot;&amp;lt;/TargetGrants&amp;gt;&amp;quot;);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append(
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;&amp;lt;BucketLoggingStatus xmlns=\&amp;quot;&amp;quot; + Constants.XML_NAMESPACE +
&lt;br&gt;&amp;gt; &amp;quot;\&amp;quot;&amp;gt;&amp;quot; +
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(!isLoggingEnabled() ? &amp;quot;&amp;quot; : &amp;quot;&amp;lt;LoggingEnabled&amp;gt;&amp;quot; +
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;&amp;lt;TargetBucket&amp;gt;&amp;quot; + getTargetBucketName() + &amp;quot;&amp;lt;/TargetBucket&amp;gt;&amp;quot;
&lt;br&gt;&amp;gt; +
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;&amp;lt;TargetPrefix&amp;gt;&amp;quot; + getLogfilePrefix() + &amp;quot;&amp;lt;/TargetPrefix&amp;gt;&amp;quot; +
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(bAddGrantACL ? strGrantACL.toString() : &amp;quot;&amp;quot;) +
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;&amp;lt;/LoggingEnabled&amp;gt;&amp;quot;) +
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;&amp;lt;/BucketLoggingStatus&amp;gt;&amp;quot;);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return sb.toString();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------------------------------------
&lt;br&gt;&amp;gt; Class: org\jets3t\service\impl\rest\XmlResponsesSaxParser.java
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; // Following is the complete class with changes
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;public class BucketLoggingStatusHandler extends DefaultHandler {
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private S3BucketLoggingStatus bucketLoggingStatus = null;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private String targetBucket = null;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private String targetPrefix = null;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private StringBuffer currText = null;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private GranteeInterface currentGrantee = null;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private Permission currentPermission = null;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private GrantAndPermission currentGrantAndPermission=null;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private Set trangetGrants = null;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public BucketLoggingStatusHandler() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.currText = new StringBuffer();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @return
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * an object representing the bucket's LoggingStatus document.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public S3BucketLoggingStatus getBucketLoggingStatus() {
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return bucketLoggingStatus;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void startDocument() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void endDocument() {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void startElement(String uri, String name, String qName,
&lt;br&gt;&amp;gt; Attributes attrs) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (name.equals(&amp;quot;BucketLoggingStatus&amp;quot;)) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bucketLoggingStatus = new S3BucketLoggingStatus();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else if (name.equals(&amp;quot;TargetGrants&amp;quot;)) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;trangetGrants = new HashSet();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void endElement(String uri, String name, String qName) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String elementText = this.currText.toString();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (name.equals(&amp;quot;TargetBucket&amp;quot;)) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;targetBucket = elementText;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else if (name.equals(&amp;quot;TargetPrefix&amp;quot;)) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;targetPrefix = elementText;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else if (name.equals(&amp;quot;LoggingEnabled&amp;quot;)) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bucketLoggingStatus.setTargetBucketName(targetBucket);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bucketLoggingStatus.setLogfilePrefix(targetPrefix);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else if (name.equals(&amp;quot;ID&amp;quot;)) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;currentGrantee = new CanonicalGrantee();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;currentGrantee.setIdentifier(elementText);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else if (name.equals(&amp;quot;EmailAddress&amp;quot;)) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;currentGrantee = new EmailAddressGrantee();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;currentGrantee.setIdentifier(elementText);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else if (name.equals(&amp;quot;DisplayName&amp;quot;)) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;((CanonicalGrantee)
&lt;br&gt;&amp;gt; currentGrantee).setDisplayName(elementText);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else if (name.equals(&amp;quot;Permission&amp;quot;)) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;currentPermission = Permission.parsePermission(elementText);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}else if (name.equals(&amp;quot;Grant&amp;quot;)) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;currentGrantAndPermission = new
&lt;br&gt;&amp;gt; GrantAndPermission(currentGrantee, currentPermission);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;trangetGrants.add(currentGrantAndPermission);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}else if(name.equals(&amp;quot;TargetGrants&amp;quot;)){
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bucketLoggingStatus.setGrants(trangetGrants);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.currText = new StringBuffer();
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void characters(char ch[], int start, int length) {
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.currText.append(ch, start, length);
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/Changes-in-Jets3t-code-for-TargetGrant-in-BucketLogging-tp24735589p24735589.html&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/Changes-in-Jets3t-code-for-TargetGrant-in-BucketLogging-tp24735589p24735589.html&lt;/a&gt;&lt;br&gt;&amp;gt; Sent from the JetS3t Users mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: users-unsubscribe@jets3t.dev.java.net
&lt;br&gt;&amp;gt; For additional commands, e-mail: users-help@jets3t.dev.java.net
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/JetS3t-Users-f24326.html&quot; embed=&quot;fixTarget[24326]&quot; target=&quot;_top&quot; &gt;JetS3t Users&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Changes-in-Jets3t-code-for-TargetGrant-in-BucketLogging-tp24735589p24754953.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-24751708</id>
	<title>Re: Changes in Jets3t code for TargetGrant in BucketLogging</title>
	<published>2009-07-30T23:30:07Z</published>
	<updated>2009-07-30T23:30:07Z</updated>
	<author>
		<name>James Murty-3</name>
	</author>
	<content type="html">Hi Jawahar,&lt;br&gt;&lt;br&gt;Thanks for the code submission, I will look into adding TargetGrants support into JetS3t over the next few days. &lt;br&gt;&lt;br&gt;Can you please confirm for me that you grant all rights for your submission to be included in JetS3t and distributed under the Apache 2.0 license?&lt;br&gt;

&lt;br&gt;Thanks,&lt;br&gt;James&lt;br&gt;&lt;br clear=&quot;all&quot;&gt;---&lt;br&gt;&lt;a href=&quot;http://www.jamesmurty.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.jamesmurty.com&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Thu, Jul 30, 2009 at 3:07 AM, Jawahar Nayak &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=24751708&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jlal@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;

&lt;br&gt;
&lt;br&gt;
Hi,&lt;br&gt;
&lt;br&gt;
  I am Jawahar Lal Nayak. I am using the latest version of Jets3t and I made&lt;br&gt;
changes regarding TragetGrants for bucket logging in jets3t source:&lt;br&gt;
-----------------------------------------------------------------------------------------------&lt;br&gt;
Class: org\jets3t\service\model\S3BucketLoggingStatus.java&lt;br&gt;
-----------------------------------------------------------------------------------------------&lt;br&gt;
&lt;br&gt;
//Added one instance varriable:&lt;br&gt;
&lt;br&gt;
private Set trangetGrants;&lt;br&gt;
&lt;br&gt;
// Added set and get methods for trangetGrants;&lt;br&gt;
&lt;br&gt;
   public void setTrangetGrants(Set targetgrants) {&lt;br&gt;
        trangetGrants= targetgrants;&lt;br&gt;
    }&lt;br&gt;
&lt;br&gt;
    public Set getTrangetGrants() {&lt;br&gt;
        return trangetGrants;&lt;br&gt;
    }&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
// Modified the toString() method&lt;br&gt;
&lt;br&gt;
public String toXml() {&lt;br&gt;
        boolean bAddGrantACL = false;&lt;br&gt;
        StringBuffer sb = new StringBuffer();&lt;br&gt;
        StringBuffer strGrantACL = new StringBuffer();&lt;br&gt;
        if (isLoggingEnabled() &amp;amp;&amp;amp; (trangetGrants != null &amp;amp;&amp;amp;&lt;br&gt;
trangetGrants.size() &amp;gt; 0)) {&lt;br&gt;
            bAddGrantACL = true;&lt;br&gt;
            strGrantACL.append(&amp;quot;&amp;lt;TargetGrants&amp;gt;&amp;quot;);&lt;br&gt;
            Iterator grantIter = trangetGrants.iterator();&lt;br&gt;
            while (grantIter.hasNext()) {&lt;br&gt;
                GrantAndPermission gap = (GrantAndPermission)&lt;br&gt;
grantIter.next();&lt;br&gt;
                GranteeInterface grantee = gap.getGrantee();&lt;br&gt;
                Permission permission = gap.getPermission();&lt;br&gt;
                strGrantACL.append(&lt;br&gt;
                        &amp;quot;&amp;lt;Grant&amp;gt;&amp;quot; +&lt;br&gt;
                        grantee.toXml() +&lt;br&gt;
                        &amp;quot;&amp;lt;Permission&amp;gt;&amp;quot; + permission + &amp;quot;&amp;lt;/Permission&amp;gt;&amp;quot; +&lt;br&gt;
                        &amp;quot;&amp;lt;/Grant&amp;gt;&amp;quot;);&lt;br&gt;
            }&lt;br&gt;
            strGrantACL.append(&amp;quot;&amp;lt;/TargetGrants&amp;gt;&amp;quot;);&lt;br&gt;
        }&lt;br&gt;
        sb.append(&lt;br&gt;
                &amp;quot;&amp;lt;BucketLoggingStatus xmlns=\&amp;quot;&amp;quot; + Constants.XML_NAMESPACE +&lt;br&gt;
&amp;quot;\&amp;quot;&amp;gt;&amp;quot; +&lt;br&gt;
                (!isLoggingEnabled() ? &amp;quot;&amp;quot; : &amp;quot;&amp;lt;LoggingEnabled&amp;gt;&amp;quot; +&lt;br&gt;
                &amp;quot;&amp;lt;TargetBucket&amp;gt;&amp;quot; + getTargetBucketName() + &amp;quot;&amp;lt;/TargetBucket&amp;gt;&amp;quot;&lt;br&gt;
+&lt;br&gt;
                &amp;quot;&amp;lt;TargetPrefix&amp;gt;&amp;quot; + getLogfilePrefix() + &amp;quot;&amp;lt;/TargetPrefix&amp;gt;&amp;quot; +&lt;br&gt;
                (bAddGrantACL ? strGrantACL.toString() : &amp;quot;&amp;quot;) +&lt;br&gt;
                &amp;quot;&amp;lt;/LoggingEnabled&amp;gt;&amp;quot;) +&lt;br&gt;
                &amp;quot;&amp;lt;/BucketLoggingStatus&amp;gt;&amp;quot;);&lt;br&gt;
        return sb.toString();&lt;br&gt;
    }&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
---------------------------------------------------------------------------------------------------&lt;br&gt;
Class: org\jets3t\service\impl\rest\XmlResponsesSaxParser.java&lt;br&gt;
---------------------------------------------------------------------------------------------------&lt;br&gt;
&lt;br&gt;
// Following is the complete class with changes&lt;br&gt;
&lt;br&gt;
    public class BucketLoggingStatusHandler extends DefaultHandler {&lt;br&gt;
&lt;br&gt;
        private S3BucketLoggingStatus bucketLoggingStatus = null;&lt;br&gt;
        private String targetBucket = null;&lt;br&gt;
        private String targetPrefix = null;&lt;br&gt;
        private StringBuffer currText = null;&lt;br&gt;
        private GranteeInterface currentGrantee = null;&lt;br&gt;
        private Permission currentPermission = null;&lt;br&gt;
        private GrantAndPermission currentGrantAndPermission=null;&lt;br&gt;
        private Set trangetGrants = null;&lt;br&gt;
&lt;br&gt;
        public BucketLoggingStatusHandler() {&lt;br&gt;
            super();&lt;br&gt;
            this.currText = new StringBuffer();&lt;br&gt;
        }&lt;br&gt;
&lt;br&gt;
        /**&lt;br&gt;
         * @return&lt;br&gt;
         * an object representing the bucket&amp;#39;s LoggingStatus document.&lt;br&gt;
         */&lt;br&gt;
        public S3BucketLoggingStatus getBucketLoggingStatus() {&lt;br&gt;
&lt;br&gt;
            return bucketLoggingStatus;&lt;br&gt;
        }&lt;br&gt;
&lt;br&gt;
        public void startDocument() {&lt;br&gt;
        }&lt;br&gt;
&lt;br&gt;
        public void endDocument() {&lt;br&gt;
        }&lt;br&gt;
&lt;br&gt;
        public void startElement(String uri, String name, String qName,&lt;br&gt;
Attributes attrs) {&lt;br&gt;
            if (name.equals(&amp;quot;BucketLoggingStatus&amp;quot;)) {&lt;br&gt;
                bucketLoggingStatus = new S3BucketLoggingStatus();&lt;br&gt;
            } else if (name.equals(&amp;quot;TargetGrants&amp;quot;)) {&lt;br&gt;
                trangetGrants = new HashSet();&lt;br&gt;
            }&lt;br&gt;
        }&lt;br&gt;
&lt;br&gt;
        public void endElement(String uri, String name, String qName) {&lt;br&gt;
            String elementText = this.currText.toString();&lt;br&gt;
            if (name.equals(&amp;quot;TargetBucket&amp;quot;)) {&lt;br&gt;
                targetBucket = elementText;&lt;br&gt;
            } else if (name.equals(&amp;quot;TargetPrefix&amp;quot;)) {&lt;br&gt;
                targetPrefix = elementText;&lt;br&gt;
            } else if (name.equals(&amp;quot;LoggingEnabled&amp;quot;)) {&lt;br&gt;
                bucketLoggingStatus.setTargetBucketName(targetBucket);&lt;br&gt;
                bucketLoggingStatus.setLogfilePrefix(targetPrefix);&lt;br&gt;
            } else if (name.equals(&amp;quot;ID&amp;quot;)) {&lt;br&gt;
                currentGrantee = new CanonicalGrantee();&lt;br&gt;
                currentGrantee.setIdentifier(elementText);&lt;br&gt;
            } else if (name.equals(&amp;quot;EmailAddress&amp;quot;)) {&lt;br&gt;
                currentGrantee = new EmailAddressGrantee();&lt;br&gt;
                currentGrantee.setIdentifier(elementText);&lt;br&gt;
            } else if (name.equals(&amp;quot;DisplayName&amp;quot;)) {&lt;br&gt;
                ((CanonicalGrantee)&lt;br&gt;
currentGrantee).setDisplayName(elementText);&lt;br&gt;
            } else if (name.equals(&amp;quot;Permission&amp;quot;)) {&lt;br&gt;
                currentPermission = Permission.parsePermission(elementText);&lt;br&gt;
            }else if (name.equals(&amp;quot;Grant&amp;quot;)) {&lt;br&gt;
                currentGrantAndPermission = new&lt;br&gt;
GrantAndPermission(currentGrantee, currentPermission);&lt;br&gt;
                trangetGrants.add(currentGrantAndPermission);&lt;br&gt;
            }else if(name.equals(&amp;quot;TargetGrants&amp;quot;)){&lt;br&gt;
                bucketLoggingStatus.setGrants(trangetGrants);&lt;br&gt;
            }&lt;br&gt;
            this.currText = new StringBuffer();&lt;br&gt;
        }&lt;br&gt;
&lt;br&gt;
        public void characters(char ch[], int start, int length) {&lt;br&gt;
            this.currText.append(ch, start, length);&lt;br&gt;
        }&lt;br&gt;
    }&lt;br&gt;
&lt;br&gt;
Thanks&lt;br&gt;
&lt;font color=&quot;#888888&quot;&gt;--&lt;br&gt;
View this message in context: &lt;a href=&quot;http://www.nabble.com/Changes-in-Jets3t-code-for-TargetGrant-in-BucketLogging-tp24735589p24735589.html&quot; target=&quot;_blank&quot;&gt;http://www.nabble.com/Changes-in-Jets3t-code-for-TargetGrant-in-BucketLogging-tp24735589p24735589.html&lt;/a&gt;&lt;br&gt;


Sent from the JetS3t Users mailing list archive at Nabble.com.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
---------------------------------------------------------------------&lt;br&gt;
To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=24751708&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-unsubscribe@...&lt;/a&gt;&lt;br&gt;
For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=24751708&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-help@...&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;/font&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/JetS3t-Users-f24326.html&quot; embed=&quot;fixTarget[24326]&quot; target=&quot;_top&quot; &gt;JetS3t Users&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Changes-in-Jets3t-code-for-TargetGrant-in-BucketLogging-tp24735589p24751708.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-24751521</id>
	<title>Re: Is BytesProgressWatcher the only way to get progress</title>
	<published>2009-07-30T22:19:24Z</published>
	<updated>2009-07-30T22:19:24Z</updated>
	<author>
		<name>James Murty-2</name>
	</author>
	<content type="html">Hi Trig,&lt;br&gt;&lt;br&gt;BytesProgressWatcher is the only mechanism JetS3t
provides for monitoring the progress of data transfers. You are right
that it monitors the progress of bytes being queued, rather than actual
transmission on the wire.&lt;br&gt;
&lt;br&gt;To monitor on-the-wire throughput you will need to hook into the
HttpClient library somehow. I&amp;#39;m not sure if there is a straight-forward
way of doing this, I never looked into it in depth for JetS3t because I
wanted a mechanism that wasn&amp;#39;t dependent on a particular library.&lt;br&gt;
&lt;br&gt;James&lt;br&gt;&lt;br clear=&quot;all&quot;&gt;---&lt;br&gt;&lt;a href=&quot;http://www.jamesmurty.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.jamesmurty.com&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Thu, Jul 30, 2009 at 3:36 PM, Trig Gullberg &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=24751521&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tgullberg@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;

How do we get progress for a given upload?  The BytesProgressWatcher seems to only give progress of what is written to some internal buffer not what is written on the wire.  Can we get upload progress somehow through the jets3t api?  Or do we simply have to plug something into the apache http client that jets3t uses?  Please help.  We would like to have a standard way to get the progress instead of hacking up a short term solution.&lt;br&gt;


&lt;br&gt;
Thanks,&lt;br&gt;
&lt;br&gt;
Trig&lt;br&gt;
&lt;br&gt;
---------------------------------------------------------------------&lt;br&gt;
To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=24751521&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;&lt;br&gt;
For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=24751521&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/JetS3t-Development-f24325.html&quot; embed=&quot;fixTarget[24325]&quot; target=&quot;_top&quot; &gt;JetS3t Development&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Is-BytesProgressWatcher-the-only-way-to-get-progress-tp24748722p24751521.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-24748722</id>
	<title>Is BytesProgressWatcher the only way to get progress</title>
	<published>2009-07-30T15:36:06Z</published>
	<updated>2009-07-30T15:36:06Z</updated>
	<author>
		<name>Trig Gullberg</name>
	</author>
	<content type="html">How do we get progress for a given upload? &amp;nbsp;The BytesProgressWatcher seems to only give progress of what is written to some internal buffer not what is written on the wire. &amp;nbsp;Can we get upload progress somehow through the jets3t api? &amp;nbsp;Or do we simply have to plug something into the apache http client that jets3t uses? &amp;nbsp;Please help. &amp;nbsp;We would like to have a standard way to get the progress instead of hacking up a short term solution.
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;&lt;br&gt;Trig
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=24748722&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=24748722&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/JetS3t-Development-f24325.html&quot; embed=&quot;fixTarget[24325]&quot; target=&quot;_top&quot; &gt;JetS3t Development&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Is-BytesProgressWatcher-the-only-way-to-get-progress-tp24748722p24748722.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-24735589</id>
	<title>Changes in Jets3t code for TargetGrant in BucketLogging</title>
	<published>2009-07-30T03:07:22Z</published>
	<updated>2009-07-30T03:07:22Z</updated>
	<author>
		<name>Jawahar Nayak</name>
	</author>
	<content type="html">&lt;br&gt;Hi,
&lt;br&gt;&lt;br&gt;&amp;nbsp; I am Jawahar Lal Nayak. I am using the latest version of Jets3t and I made changes regarding TragetGrants for bucket logging in jets3t source:
&lt;br&gt;-----------------------------------------------------------------------------------------------
&lt;br&gt;Class: &lt;b&gt;org\jets3t\service\model\S3BucketLoggingStatus.java&lt;/b&gt;&lt;br&gt;-----------------------------------------------------------------------------------------------
&lt;br&gt;&lt;br&gt;//Added one instance varriable:
&lt;br&gt;&lt;br&gt;private Set trangetGrants;
&lt;br&gt;&lt;br&gt;&lt;b&gt;// Added set and get methods for trangetGrants;&lt;/b&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;public void setTrangetGrants(Set targetgrants) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; trangetGrants= targetgrants;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; public Set getTrangetGrants() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return trangetGrants;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;br&gt;// Modified the toString() method&lt;/b&gt;&lt;br&gt;&lt;br&gt;public String toXml() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; boolean bAddGrantACL = false;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; StringBuffer sb = new StringBuffer();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; StringBuffer strGrantACL = new StringBuffer();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (isLoggingEnabled() &amp;&amp; (trangetGrants != null &amp;&amp; trangetGrants.size() &amp;gt; 0)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; bAddGrantACL = true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; strGrantACL.append(&amp;quot;&amp;lt;TargetGrants&amp;gt;&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Iterator grantIter = trangetGrants.iterator();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while (grantIter.hasNext()) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GrantAndPermission gap = (GrantAndPermission) grantIter.next();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GranteeInterface grantee = gap.getGrantee();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Permission permission = gap.getPermission();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; strGrantACL.append(
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;&amp;lt;Grant&amp;gt;&amp;quot; +
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; grantee.toXml() +
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;&amp;lt;Permission&amp;gt;&amp;quot; + permission + &amp;quot;&amp;lt;/Permission&amp;gt;&amp;quot; +
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;&amp;lt;/Grant&amp;gt;&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; strGrantACL.append(&amp;quot;&amp;lt;/TargetGrants&amp;gt;&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sb.append(
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;&amp;lt;BucketLoggingStatus xmlns=\&amp;quot;&amp;quot; + Constants.XML_NAMESPACE + &amp;quot;\&amp;quot;&amp;gt;&amp;quot; +
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (!isLoggingEnabled() ? &amp;quot;&amp;quot; : &amp;quot;&amp;lt;LoggingEnabled&amp;gt;&amp;quot; +
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;&amp;lt;TargetBucket&amp;gt;&amp;quot; + getTargetBucketName() + &amp;quot;&amp;lt;/TargetBucket&amp;gt;&amp;quot; +
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;&amp;lt;TargetPrefix&amp;gt;&amp;quot; + getLogfilePrefix() + &amp;quot;&amp;lt;/TargetPrefix&amp;gt;&amp;quot; +
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (bAddGrantACL ? strGrantACL.toString() : &amp;quot;&amp;quot;) +
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;&amp;lt;/LoggingEnabled&amp;gt;&amp;quot;) +
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;&amp;lt;/BucketLoggingStatus&amp;gt;&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return sb.toString();
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------------------------------------
&lt;br&gt;Class:&lt;b&gt;&amp;nbsp;org\jets3t\service\impl\rest\XmlResponsesSaxParser.java&lt;/b&gt;&lt;br&gt;---------------------------------------------------------------------------------------------------
&lt;br&gt;&lt;b&gt;&lt;br&gt;// Following is the complete class with changes&lt;/b&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; public class BucketLoggingStatusHandler extends DefaultHandler {
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; private S3BucketLoggingStatus bucketLoggingStatus = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; private String targetBucket = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; private String targetPrefix = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; private StringBuffer currText = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; private GranteeInterface currentGrantee = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; private Permission currentPermission = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; private GrantAndPermission currentGrantAndPermission=null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; private Set trangetGrants = null;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public BucketLoggingStatusHandler() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; super();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.currText = new StringBuffer();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @return
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* an object representing the bucket's LoggingStatus document.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public S3BucketLoggingStatus getBucketLoggingStatus() {
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return bucketLoggingStatus;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public void startDocument() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public void endDocument() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public void startElement(String uri, String name, String qName, Attributes attrs) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (name.equals(&amp;quot;BucketLoggingStatus&amp;quot;)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; bucketLoggingStatus = new S3BucketLoggingStatus();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else if (name.equals(&amp;quot;TargetGrants&amp;quot;)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; trangetGrants = new HashSet();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public void endElement(String uri, String name, String qName) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; String elementText = this.currText.toString();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (name.equals(&amp;quot;TargetBucket&amp;quot;)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; targetBucket = elementText;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else if (name.equals(&amp;quot;TargetPrefix&amp;quot;)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; targetPrefix = elementText;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else if (name.equals(&amp;quot;LoggingEnabled&amp;quot;)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; bucketLoggingStatus.setTargetBucketName(targetBucket);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; bucketLoggingStatus.setLogfilePrefix(targetPrefix);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else if (name.equals(&amp;quot;ID&amp;quot;)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; currentGrantee = new CanonicalGrantee();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; currentGrantee.setIdentifier(elementText);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else if (name.equals(&amp;quot;EmailAddress&amp;quot;)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; currentGrantee = new EmailAddressGrantee();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; currentGrantee.setIdentifier(elementText);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else if (name.equals(&amp;quot;DisplayName&amp;quot;)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ((CanonicalGrantee) currentGrantee).setDisplayName(elementText);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else if (name.equals(&amp;quot;Permission&amp;quot;)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; currentPermission = Permission.parsePermission(elementText);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }else if (name.equals(&amp;quot;Grant&amp;quot;)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; currentGrantAndPermission = new GrantAndPermission(currentGrantee, currentPermission);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; trangetGrants.add(currentGrantAndPermission);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }else if(name.equals(&amp;quot;TargetGrants&amp;quot;)){
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; bucketLoggingStatus.setGrants(trangetGrants);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.currText = new StringBuffer();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public void characters(char ch[], int start, int length) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.currText.append(ch, start, length);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&lt;br&gt;Thanks&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/JetS3t-Users-f24326.html&quot; embed=&quot;fixTarget[24326]&quot; target=&quot;_top&quot; &gt;JetS3t Users&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Changes-in-Jets3t-code-for-TargetGrant-in-BucketLogging-tp24735589p24735589.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-24542160</id>
	<title>Eucalyptus 1.5.2</title>
	<published>2009-07-17T14:40:25Z</published>
	<updated>2009-07-17T14:40:25Z</updated>
	<author>
		<name>Neil Soman</name>
	</author>
	<content type="html">Hello,
&lt;br&gt;&lt;br&gt;sorry about the spam, but thought some people might be interested.
&lt;br&gt;&lt;br&gt;Eucalyptus 1.5.2 is out with better API support.
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://forum.eucalyptus.com/forum/viewtopic.php?f=3&amp;t=807&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://forum.eucalyptus.com/forum/viewtopic.php?f=3&amp;t=807&lt;/a&gt;&lt;br&gt;&lt;br&gt;The demo Eucalyptus Public Cloud is still running an older version of
&lt;br&gt;Eucalyptus and will upgraded soon (in case you are interested in
&lt;br&gt;interacting with it).
&lt;br&gt;&lt;br&gt;Suggestions/feedback will be welcome.
&lt;br&gt;&lt;br&gt;thank you
&lt;br&gt;neil
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=24542160&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=24542160&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/JetS3t-Users-f24326.html&quot; embed=&quot;fixTarget[24326]&quot; target=&quot;_top&quot; &gt;JetS3t Users&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Eucalyptus-1.5.2-tp24542160p24542160.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-24401931</id>
	<title>Re: Synchronize didn't error but created a single, empty file</title>
	<published>2009-07-08T17:36:56Z</published>
	<updated>2009-07-08T17:36:56Z</updated>
	<author>
		<name>James Murty-3</name>
	</author>
	<content type="html">Brendan,&lt;br&gt;&lt;br&gt;You will certainly need to test how well different software interacts if you plan to use different tools to store items in subfolders of the same bucket. For the most part things should be OK, in that all your data will be stored in S3 and will be accessible using the same tool you used to upload it. However, you may face problems if you later try using program X to download files uploaded with program Y, or if you use both X and Y to upload files to the same &amp;quot;subdirectory&amp;quot; in S3.&lt;br&gt;

&lt;br&gt;It would be very interesting if you could follow up here with your experiences using a few different tools, although that would make you something of a guinea pig. Depending on exactly how other tools work, it may be possible to add options to JetS3t to make it more compatible with them. I have done this already for one or two other common tools, though not S3Fox.&lt;br&gt;

&lt;br&gt;James&lt;br&gt;&lt;br clear=&quot;all&quot;&gt;---&lt;br&gt;&lt;a href=&quot;http://www.jamesmurty.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.jamesmurty.com&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Wed, Jul 8, 2009 at 5:21 PM, Branden Makana &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=24401931&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;branden.makana@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;

&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Thanks James - that makes sense then. Now my concern is - do I need to make sure any files put anywhere in that bucket are done so by jets3t? I was planning on using one bucket for all my files, and then &amp;quot;folders&amp;quot; inside that bucket for each server I planned on backing up. It sounds like if I need to make sure to use jets3t or else various programs might step on each other in how they do folders, is that correct?&lt;/div&gt;


&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;&lt;div class=&quot;im&quot;&gt;On Wed, Jul 8, 2009 at 5:03 PM, James Murty &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=24401931&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;james@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;

&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;h5&quot;&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
Hi Branden,&lt;br&gt;&lt;br&gt;I&amp;#39;m afraid this problem is due to an incompatibility between the way JetS3t represents folders in S3 and the way the Firefox plugin does so. All your files will be present in S3 and completely accessible to JetS3t programs, but because JetS3t and Elasticfox use different methods to indicate when an S3 object really represents a folder you will need to give Elasticfox a little help.&lt;br&gt;




&lt;br&gt;Instead of relying on Elasticfox recognizing folders, you will need to type in the folder path into the object path field with an added slash character at the end, e.g. &amp;quot;myfolder/&amp;quot;. When you add the slash character, you should get a listing of files inside that &amp;quot;folder&amp;quot;.&lt;br&gt;




&lt;br&gt;As an alternative, you can use the JetS3t Cockpit application which will list all the objects in a bucket. However, Cockpit does not offer the same kind of folder-specific view that Elasticfox does.&lt;br&gt;&lt;br&gt;It is unfortunate that there is not a standard way to represent folders stored in S3 and that different tools use different techniques. The underlying issue is that there is really no such thing as a folder object in S3, so we all use different tricks when storing folder hierarchies so we can recognize which objects represent folders and which represent files. All of which causes headaches for users.&lt;br&gt;




&lt;br&gt;I hope this helps,&lt;br&gt;James&lt;br&gt;&lt;br clear=&quot;all&quot;&gt;---&lt;br&gt;&lt;a href=&quot;http://www.jamesmurty.com&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://www.jamesmurty.com&lt;/a&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;
&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Wed, Jul 8, 2009 at 4:12 PM, Branden Makana &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=24401931&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;branden.makana@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;




Hello,&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I was trying out jets3t&amp;#39;s Synchronize program to backup a folder structure to amazon&amp;#39;s S3. I ran the batch file, and it appeared to run correctly - it says it copied 61,544 files, it took several hours, and no errors were spit out. However, when I use the Firefox plugin &amp;quot;S3 Firefox&amp;quot; (so that I can confirm the backup did run correctly), I see it made a single file that&amp;#39;s 0 bytes. Now I&amp;#39;m trying to figure out what happened. &lt;/div&gt;





&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Here&amp;#39;s how I ran jets3t, on a Windows 2003 server:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;synchronize.bat -b UP &amp;quot;portentint/homerbak&amp;quot; e:\inetpub\wwwroot &lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;portentint being my bucket on S3, and I wanted a directory inside that called homerbak. When I look in S3 Firefox, I see homerbak folder inside my bucket (so that worked), and then inside there I see &amp;quot;wwwroot&amp;quot; which looks like a file, and has a file size of 0. &lt;/div&gt;





&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;What did I do wrong, and how could it have taken several hours copying 4-5GB but I only see this empty file?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Any help/comments are appreciated :)&lt;/div&gt;





&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;
&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/JetS3t-Users-f24326.html&quot; embed=&quot;fixTarget[24326]&quot; target=&quot;_top&quot; &gt;JetS3t Users&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Synchronize-didn%27t-error-but-created-a-single%2C-empty-file-tp24401090p24401931.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-24401785</id>
	<title>Re: Synchronize didn't error but created a single, empty file</title>
	<published>2009-07-08T17:21:14Z</published>
	<updated>2009-07-08T17:21:14Z</updated>
	<author>
		<name>Branden Makana</name>
	</author>
	<content type="html">&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Thanks James - that makes sense then. Now my concern is - do I need to make sure any files put anywhere in that bucket are done so by jets3t? I was planning on using one bucket for all my files, and then &amp;quot;folders&amp;quot; inside that bucket for each server I planned on backing up. It sounds like if I need to make sure to use jets3t or else various programs might step on each other in how they do folders, is that correct?&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Wed, Jul 8, 2009 at 5:03 PM, James Murty &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=24401785&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;james@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;&quot;&gt;
Hi Branden,&lt;br&gt;&lt;br&gt;I&amp;#39;m afraid this problem is due to an incompatibility between the way JetS3t represents folders in S3 and the way the Firefox plugin does so. All your files will be present in S3 and completely accessible to JetS3t programs, but because JetS3t and Elasticfox use different methods to indicate when an S3 object really represents a folder you will need to give Elasticfox a little help.&lt;br&gt;


&lt;br&gt;Instead of relying on Elasticfox recognizing folders, you will need to type in the folder path into the object path field with an added slash character at the end, e.g. &amp;quot;myfolder/&amp;quot;. When you add the slash character, you should get a listing of files inside that &amp;quot;folder&amp;quot;.&lt;br&gt;


&lt;br&gt;As an alternative, you can use the JetS3t Cockpit application which will list all the objects in a bucket. However, Cockpit does not offer the same kind of folder-specific view that Elasticfox does.&lt;br&gt;&lt;br&gt;It is unfortunate that there is not a standard way to represent folders stored in S3 and that different tools use different techniques. The underlying issue is that there is really no such thing as a folder object in S3, so we all use different tricks when storing folder hierarchies so we can recognize which objects represent folders and which represent files. All of which causes headaches for users.&lt;br&gt;


&lt;br&gt;I hope this helps,&lt;br&gt;James&lt;br&gt;&lt;br clear=&quot;all&quot;&gt;---&lt;br&gt;&lt;a href=&quot;http://www.jamesmurty.com&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://www.jamesmurty.com&lt;/a&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;h5&quot;&gt;&lt;br&gt;
&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Wed, Jul 8, 2009 at 4:12 PM, Branden Makana &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=24401785&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;branden.makana@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left:1px solid rgb(204, 204, 204);margin:0pt 0pt 0pt 0.8ex;padding-left:1ex&quot;&gt;


Hello,&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I was trying out jets3t&amp;#39;s Synchronize program to backup a folder structure to amazon&amp;#39;s S3. I ran the batch file, and it appeared to run correctly - it says it copied 61,544 files, it took several hours, and no errors were spit out. However, when I use the Firefox plugin &amp;quot;S3 Firefox&amp;quot; (so that I can confirm the backup did run correctly), I see it made a single file that&amp;#39;s 0 bytes. Now I&amp;#39;m trying to figure out what happened. &lt;/div&gt;



&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Here&amp;#39;s how I ran jets3t, on a Windows 2003 server:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;synchronize.bat -b UP &amp;quot;portentint/homerbak&amp;quot; e:\inetpub\wwwroot &lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;portentint being my bucket on S3, and I wanted a directory inside that called homerbak. When I look in S3 Firefox, I see homerbak folder inside my bucket (so that worked), and then inside there I see &amp;quot;wwwroot&amp;quot; which looks like a file, and has a file size of 0. &lt;/div&gt;



&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;What did I do wrong, and how could it have taken several hours copying 4-5GB but I only see this empty file?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Any help/comments are appreciated :)&lt;/div&gt;



&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/JetS3t-Users-f24326.html&quot; embed=&quot;fixTarget[24326]&quot; target=&quot;_top&quot; &gt;JetS3t Users&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Synchronize-didn%27t-error-but-created-a-single%2C-empty-file-tp24401090p24401785.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-24401753</id>
	<title>Re: Synchronize didn't error but created a single, empty file</title>
	<published>2009-07-08T17:17:25Z</published>
	<updated>2009-07-08T17:17:25Z</updated>
	<author>
		<name>James Murty-3</name>
	</author>
	<content type="html">Oops, substitute &amp;quot;S3Fox&amp;quot; wherever I said &amp;quot;Elasticfox&amp;quot; in my last message. Elasticfox is the EC2 Firefox add-on, not the S3 one.&lt;br&gt;&lt;br&gt;James&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Wed, Jul 8, 2009 at 5:03 PM, James Murty &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=24401753&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;james@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;

&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;Hi Branden,&lt;br&gt;&lt;br&gt;I&amp;#39;m afraid this problem is due to an incompatibility between the way JetS3t represents folders in S3 and the way the Firefox plugin does so. All your files will be present in S3 and completely accessible to JetS3t programs, but because JetS3t and Elasticfox use different methods to indicate when an S3 object really represents a folder you will need to give Elasticfox a little help.&lt;br&gt;


&lt;br&gt;Instead of relying on Elasticfox recognizing folders, you will need to type in the folder path into the object path field with an added slash character at the end, e.g. &amp;quot;myfolder/&amp;quot;. When you add the slash character, you should get a listing of files inside that &amp;quot;folder&amp;quot;.&lt;br&gt;


&lt;br&gt;As an alternative, you can use the JetS3t Cockpit application which will list all the objects in a bucket. However, Cockpit does not offer the same kind of folder-specific view that Elasticfox does.&lt;br&gt;&lt;br&gt;It is unfortunate that there is not a standard way to represent folders stored in S3 and that different tools use different techniques. The underlying issue is that there is really no such thing as a folder object in S3, so we all use different tricks when storing folder hierarchies so we can recognize which objects represent folders and which represent files. All of which causes headaches for users.&lt;br&gt;


&lt;br&gt;I hope this helps,&lt;br&gt;James&lt;br&gt;&lt;br clear=&quot;all&quot;&gt;---&lt;br&gt;&lt;a href=&quot;http://www.jamesmurty.com&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://www.jamesmurty.com&lt;/a&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;h5&quot;&gt;&lt;br&gt;
&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Wed, Jul 8, 2009 at 4:12 PM, Branden Makana &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=24401753&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;branden.makana@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;


Hello,&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I was trying out jets3t&amp;#39;s Synchronize program to backup a folder structure to amazon&amp;#39;s S3. I ran the batch file, and it appeared to run correctly - it says it copied 61,544 files, it took several hours, and no errors were spit out. However, when I use the Firefox plugin &amp;quot;S3 Firefox&amp;quot; (so that I can confirm the backup did run correctly), I see it made a single file that&amp;#39;s 0 bytes. Now I&amp;#39;m trying to figure out what happened. &lt;/div&gt;



&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Here&amp;#39;s how I ran jets3t, on a Windows 2003 server:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;synchronize.bat -b UP &amp;quot;portentint/homerbak&amp;quot; e:\inetpub\wwwroot &lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;portentint being my bucket on S3, and I wanted a directory inside that called homerbak. When I look in S3 Firefox, I see homerbak folder inside my bucket (so that worked), and then inside there I see &amp;quot;wwwroot&amp;quot; which looks like a file, and has a file size of 0. &lt;/div&gt;



&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;What did I do wrong, and how could it have taken several hours copying 4-5GB but I only see this empty file?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Any help/comments are appreciated :)&lt;/div&gt;



&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/JetS3t-Users-f24326.html&quot; embed=&quot;fixTarget[24326]&quot; target=&quot;_top&quot; &gt;JetS3t Users&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Synchronize-didn%27t-error-but-created-a-single%2C-empty-file-tp24401090p24401753.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-24401615</id>
	<title>Re: Synchronize didn't error but created a single, empty file</title>
	<published>2009-07-08T17:03:41Z</published>
	<updated>2009-07-08T17:03:41Z</updated>
	<author>
		<name>James Murty-3</name>
	</author>
	<content type="html">Hi Branden,&lt;br&gt;&lt;br&gt;I&amp;#39;m afraid this problem is due to an incompatibility between the way JetS3t represents folders in S3 and the way the Firefox plugin does so. All your files will be present in S3 and completely accessible to JetS3t programs, but because JetS3t and Elasticfox use different methods to indicate when an S3 object really represents a folder you will need to give Elasticfox a little help.&lt;br&gt;

&lt;br&gt;Instead of relying on Elasticfox recognizing folders, you will need to type in the folder path into the object path field with an added slash character at the end, e.g. &amp;quot;myfolder/&amp;quot;. When you add the slash character, you should get a listing of files inside that &amp;quot;folder&amp;quot;.&lt;br&gt;

&lt;br&gt;As an alternative, you can use the JetS3t Cockpit application which will list all the objects in a bucket. However, Cockpit does not offer the same kind of folder-specific view that Elasticfox does.&lt;br&gt;&lt;br&gt;It is unfortunate that there is not a standard way to represent folders stored in S3 and that different tools use different techniques. The underlying issue is that there is really no such thing as a folder object in S3, so we all use different tricks when storing folder hierarchies so we can recognize which objects represent folders and which represent files. All of which causes headaches for users.&lt;br&gt;

&lt;br&gt;I hope this helps,&lt;br&gt;James&lt;br&gt;&lt;br clear=&quot;all&quot;&gt;---&lt;br&gt;&lt;a href=&quot;http://www.jamesmurty.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.jamesmurty.com&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Wed, Jul 8, 2009 at 4:12 PM, Branden Makana &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=24401615&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;branden.makana@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;

Hello,&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I was trying out jets3t&amp;#39;s Synchronize program to backup a folder structure to amazon&amp;#39;s S3. I ran the batch file, and it appeared to run correctly - it says it copied 61,544 files, it took several hours, and no errors were spit out. However, when I use the Firefox plugin &amp;quot;S3 Firefox&amp;quot; (so that I can confirm the backup did run correctly), I see it made a single file that&amp;#39;s 0 bytes. Now I&amp;#39;m trying to figure out what happened. &lt;/div&gt;


&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Here&amp;#39;s how I ran jets3t, on a Windows 2003 server:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;synchronize.bat -b UP &amp;quot;portentint/homerbak&amp;quot; e:\inetpub\wwwroot &lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;portentint being my bucket on S3, and I wanted a directory inside that called homerbak. When I look in S3 Firefox, I see homerbak folder inside my bucket (so that worked), and then inside there I see &amp;quot;wwwroot&amp;quot; which looks like a file, and has a file size of 0. &lt;/div&gt;


&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;What did I do wrong, and how could it have taken several hours copying 4-5GB but I only see this empty file?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Any help/comments are appreciated :)&lt;/div&gt;


&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/JetS3t-Users-f24326.html&quot; embed=&quot;fixTarget[24326]&quot; target=&quot;_top&quot; &gt;JetS3t Users&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Synchronize-didn%27t-error-but-created-a-single%2C-empty-file-tp24401090p24401615.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-24401090</id>
	<title>Synchronize didn't error but created a single, empty file</title>
	<published>2009-07-08T16:12:49Z</published>
	<updated>2009-07-08T16:12:49Z</updated>
	<author>
		<name>Branden Makana</name>
	</author>
	<content type="html">Hello,&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;I was trying out jets3t&amp;#39;s Synchronize program to backup a folder structure to amazon&amp;#39;s S3. I ran the batch file, and it appeared to run correctly - it says it copied 61,544 files, it took several hours, and no errors were spit out. However, when I use the Firefox plugin &amp;quot;S3 Firefox&amp;quot; (so that I can confirm the backup did run correctly), I see it made a single file that&amp;#39;s 0 bytes. Now I&amp;#39;m trying to figure out what happened. &lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Here&amp;#39;s how I ran jets3t, on a Windows 2003 server:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;synchronize.bat -b UP &amp;quot;portentint/homerbak&amp;quot; e:\inetpub\wwwroot &lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;portentint being my bucket on S3, and I wanted a directory inside that called homerbak. When I look in S3 Firefox, I see homerbak folder inside my bucket (so that worked), and then inside there I see &amp;quot;wwwroot&amp;quot; which looks like a file, and has a file size of 0. &lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;What did I do wrong, and how could it have taken several hours copying 4-5GB but I only see this empty file?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Any help/comments are appreciated :)&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/JetS3t-Users-f24326.html&quot; embed=&quot;fixTarget[24326]&quot; target=&quot;_top&quot; &gt;JetS3t Users&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Synchronize-didn%27t-error-but-created-a-single%2C-empty-file-tp24401090p24401090.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-23954940</id>
	<title>Re: toolkit and crypto</title>
	<published>2009-06-09T20:09:01Z</published>
	<updated>2009-06-09T20:09:01Z</updated>
	<author>
		<name>James Murty-2</name>
	</author>
	<content type="html">I should mention that it is difficult to achieve truly transparent
&lt;br&gt;encryption of data sent to S3 because you need to know the exact size
&lt;br&gt;of an S3 object before you upload it. If you simply run data through
&lt;br&gt;an encryption cipher as it is being uploaded, the resultant data
&lt;br&gt;probably won't match the size of the original data and the upload will
&lt;br&gt;fail.
&lt;br&gt;&lt;br&gt;So if you do use the EncryptUtils#encrypt method to get an encrypting
&lt;br&gt;cipher stream, make sure you write this data to a temporary file or
&lt;br&gt;buffer first, and only upload it once you know the final size.
&lt;br&gt;&lt;br&gt;&amp;gt; am i now stuck with warnock's dilemma?  only time will tell.
&lt;br&gt;&lt;br&gt;No dilemma. However, the JetS3t Users Google group is probably a
&lt;br&gt;better place to ask questions because more people are listening there:
&lt;br&gt;&lt;a href=&quot;http://groups.google.com/group/jets3t-users&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://groups.google.com/group/jets3t-users&lt;/a&gt;&lt;br&gt;&lt;br&gt;Cheers,
&lt;br&gt;James
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23954940&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23954940&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/JetS3t-Users-f24326.html&quot; embed=&quot;fixTarget[24326]&quot; target=&quot;_top&quot; &gt;JetS3t Users&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/toolkit-and-crypto-tp23954690p23954940.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-23954846</id>
	<title>Re: toolkit and crypto</title>
	<published>2009-06-09T19:56:22Z</published>
	<updated>2009-06-09T19:56:22Z</updated>
	<author>
		<name>James Murty-2</name>
	</author>
	<content type="html">Hi Patrick,
&lt;br&gt;&lt;br&gt;You are correct. The &amp;quot;crypto.algorithm&amp;quot; property setting in
&lt;br&gt;jets3t.properties only applies to the JetS3t applications, and will
&lt;br&gt;not enable automatic encryption of uploaded objects in the toolkit.
&lt;br&gt;&lt;br&gt;The easiest way to encrypt items you upload to S3 is to use the
&lt;br&gt;ObjectUtils#createObjectForUpload utility methods to transform a file
&lt;br&gt;prior to upload. These methods take an EncryptionUtil argument where
&lt;br&gt;you can specify a password and the encryption algorithm you wish to
&lt;br&gt;use.
&lt;br&gt;&lt;br&gt;The ObjectUtils class has a corresponding #createPackageForDownload
&lt;br&gt;method that make it simpler to download encrypted objects from S3,
&lt;br&gt;decrypting the data as it is downloaded.
&lt;br&gt;&lt;br&gt;Alternately, you can use the EncrptionUtil #encrypt and #decrypt
&lt;br&gt;methods to generate cipher input and output streams. These will
&lt;br&gt;encrypt or decrypt data in the underlying streams you provide.
&lt;br&gt;However, if you use these cipher streams directly, it would be wise to
&lt;br&gt;include enough metadata information with your S3 objects to allow you
&lt;br&gt;to decrypt them later. The advantage of the ObjectUtils methods is
&lt;br&gt;that they automatically create and consume S3 metadata items that
&lt;br&gt;indicate the algorithm that was used to encrypt data.
&lt;br&gt;&lt;br&gt;Hope this helps,
&lt;br&gt;James
&lt;br&gt;&lt;br&gt;---
&lt;br&gt;&lt;a href=&quot;http://www.jamesmurty.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.jamesmurty.com&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;On Tue, Jun 9, 2009 at 3:10 PM, Patrick Linehan&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23954846&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;plinehan@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; i'm having trouble getting transparent encryption working when using the
&lt;br&gt;&amp;gt; toolkit.  i had assumed that setting the &amp;quot;crypto.algorithm&amp;quot; property would
&lt;br&gt;&amp;gt; automatically enable encryption, but i was wrong.
&lt;br&gt;&amp;gt; i've searched the docs, mailing lists and the web, but i can't find any
&lt;br&gt;&amp;gt; discussion of this.
&lt;br&gt;&amp;gt; i'm using the standard &amp;quot;PBEWithMD5AndDES&amp;quot; algorithm, and running
&lt;br&gt;&amp;gt; EncryptionUtil.java's &amp;quot;main&amp;quot; method verifies that the cipher should be
&lt;br&gt;&amp;gt; available on my machine.
&lt;br&gt;&amp;gt; is there a setting i'm missing?  does the toolkit even support this
&lt;br&gt;&amp;gt; functionality, or is it limited to the applications?
&lt;br&gt;&amp;gt; any help would be grealy appreciated.
&lt;br&gt;&amp;gt; thanks!
&lt;br&gt;&amp;gt; PAt
&lt;/div&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23954846&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23954846&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/JetS3t-Users-f24326.html&quot; embed=&quot;fixTarget[24326]&quot; target=&quot;_top&quot; &gt;JetS3t Users&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/toolkit-and-crypto-tp23954690p23954846.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-23954880</id>
	<title>Re: toolkit and crypto</title>
	<published>2009-06-09T19:41:55Z</published>
	<updated>2009-06-09T19:41:55Z</updated>
	<author>
		<name>Patrick Linehan</name>
	</author>
	<content type="html">&lt;div&gt;&amp;gt; is there a setting i&amp;#39;m missing?  does the toolkit even support this functionality, or&lt;/div&gt;&lt;div&gt;&amp;gt; is it limited to the applications?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;after doing some more reading and grepping of the source, i believe i can now answer my own question:  the toolkit does not support &amp;quot;transparent&amp;quot; encryption, only the apps&lt;/div&gt;

&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;it looks like i should use ObjectUtils and/or EncryptionUtil to do this work manually before uploading by blobs.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;am i now stuck with &lt;a href=&quot;http://en.wikipedia.org/wiki/Warnock&amp;#39;s_Dilemma&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;warnock&amp;#39;s dilemma&lt;/a&gt;?  only time will tell.&lt;/div&gt;

&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Tue, Jun 9, 2009 at 3:10 PM, Patrick Linehan &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23954880&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;plinehan@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;&quot;&gt;

&lt;div&gt;i&amp;#39;m having trouble getting transparent encryption working when using the toolkit.  i had assumed that setting the &amp;quot;crypto.algorithm&amp;quot; property would automatically enable encryption, but i was wrong.&lt;/div&gt;


&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;i&amp;#39;ve searched the docs, mailing lists and the web, but i can&amp;#39;t find any discussion of this.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;i&amp;#39;m using the standard &amp;quot;PBEWithMD5AndDES&amp;quot; algorithm, and running EncryptionUtil.java&amp;#39;s &amp;quot;main&amp;quot; method verifies that the cipher should be available on my machine.&lt;/div&gt;


&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;is there a setting i&amp;#39;m missing?  does the toolkit even support this functionality, or is it limited to the applications?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;any help would be grealy appreciated.&lt;/div&gt;&lt;div&gt;&lt;br&gt;


&lt;/div&gt;&lt;div&gt;thanks!&lt;/div&gt;&lt;div&gt;PAt&lt;/div&gt;
&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/JetS3t-Users-f24326.html&quot; embed=&quot;fixTarget[24326]&quot; target=&quot;_top&quot; &gt;JetS3t Users&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/toolkit-and-crypto-tp23954690p23954880.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-23954690</id>
	<title>toolkit and crypto</title>
	<published>2009-06-09T15:10:47Z</published>
	<updated>2009-06-09T15:10:47Z</updated>
	<author>
		<name>Patrick Linehan</name>
	</author>
	<content type="html">&lt;div&gt;i&amp;#39;m having trouble getting transparent encryption working when using the toolkit.  i had assumed that setting the &amp;quot;crypto.algorithm&amp;quot; property would automatically enable encryption, but i was wrong.&lt;/div&gt;

&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;i&amp;#39;ve searched the docs, mailing lists and the web, but i can&amp;#39;t find any discussion of this.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;i&amp;#39;m using the standard &amp;quot;PBEWithMD5AndDES&amp;quot; algorithm, and running EncryptionUtil.java&amp;#39;s &amp;quot;main&amp;quot; method verifies that the cipher should be available on my machine.&lt;/div&gt;

&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;is there a setting i&amp;#39;m missing?  does the toolkit even support this functionality, or is it limited to the applications?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;any help would be grealy appreciated.&lt;/div&gt;&lt;div&gt;&lt;br&gt;

&lt;/div&gt;&lt;div&gt;thanks!&lt;/div&gt;&lt;div&gt;PAt&lt;/div&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/JetS3t-Users-f24326.html&quot; embed=&quot;fixTarget[24326]&quot; target=&quot;_top&quot; &gt;JetS3t Users&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/toolkit-and-crypto-tp23954690p23954690.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-23825231</id>
	<title>Re: S3 GET connection failed for</title>
	<published>2009-06-01T18:53:16Z</published>
	<updated>2009-06-01T18:53:16Z</updated>
	<author>
		<name>James Murty-2</name>
	</author>
	<content type="html">Hi Joe,&lt;br&gt;&lt;br&gt;I haven&amp;#39;t come across this kind of error before so I&amp;#39;m afraid I don&amp;#39;t have any solutions. I&amp;#39;ve done some Googling without finding a consistent explanation.&lt;br&gt;&lt;br&gt;Are you running your application on Solaris with TCP No Delay enabled? If so, this bug report might be relevant:&lt;br&gt;

&lt;a href=&quot;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6378870&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6378870&lt;/a&gt;&lt;br&gt;&lt;br&gt;I have come across a few other mentions of this issue but no solid fixes or work-arounds:&lt;br&gt;

&lt;a href=&quot;http://www.nabble.com/SocketException:-Connection-reset---Invalid-argument-td9478521.html&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/SocketException:-Connection-reset---Invalid-argument-td9478521.html&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;http://lists.apple.com/archives/Java-dev/2008/Jul/msg00089.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.apple.com/archives/Java-dev/2008/Jul/msg00089.html&lt;/a&gt;&lt;br&gt;

&lt;a href=&quot;http://www.innovation.ch/java/HTTPClient/errors.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.innovation.ch/java/HTTPClient/errors.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;Reading between the lines of some of these discussions, it sounds like this exception *may* be something you can ignore as an intermittent connection problem -- despite the nasty exception message.&lt;br&gt;

&lt;br&gt;Some of the links even imply this exception indicates a server-side problem, though that seems unlikely given you&amp;#39;re interacting with S3. I don&amp;#39;t suppose there&amp;#39;s a proxy between your client and S3? I notice that you&amp;#39;re connecting with HTTPS, so probably not.&lt;br&gt;

&lt;br&gt;If you think it is acceptable to ignore these exceptions and just retry the operation, you may want to modify JetS3t RestS3Service class to catch these specific exceptions and retry the request using its built-in retry mechanism -- like it already does for Internal Server (500) errors from the S3 service. By default, this exception will be thrown by RestS3Service straight away and it won&amp;#39;t retry the request.&lt;br&gt;

&lt;br&gt;Does anyone else have experience with this issue?&lt;br&gt;&lt;br&gt;James&lt;br clear=&quot;all&quot;&gt;&lt;br&gt;---&lt;br&gt;&lt;a href=&quot;http://www.jamesmurty.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.jamesmurty.com&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Mon, Jun 1, 2009 at 5:57 PM, Joe Moreno &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23825231&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;joemoreno@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;

Hi,&lt;br&gt;
&lt;br&gt;
    I have some code that uploads thousands of objects into S3, using several threads at a time. For some reason, the code runs fine for for awhile and then it suddenly starts throwing exceptions that look like this:&lt;br&gt;


&lt;br&gt;
[2009-06-01 02:19:34 PDT] &amp;lt;&lt;a href=&quot;http://S3HTMLBucketThread-archive.adjix.com&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;S3HTMLBucketThread-archive.adjix.com&lt;/a&gt; : 4xpd-20090501-20090531-713e20e95a60410499d9b79ec596e7a5.csv&amp;gt; &lt;a href=&quot;http://archive.adjix.com&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;archive.adjix.com&lt;/a&gt; Exception writing HTML file to bucket = org.jets3t.service.S3ServiceException: S3 GET connection failed for &amp;#39;/&amp;#39;&lt;br&gt;


org.jets3t.service.S3ServiceException: S3 GET connection failed for &amp;#39;/&amp;#39;&lt;br&gt;
        at org.jets3t.service.impl.rest.httpclient.RestS3Service.performRequest(RestS3Service.java:516)&lt;br&gt;
        at org.jets3t.service.impl.rest.httpclient.RestS3Service.performRestGet(RestS3Service.java:752)&lt;br&gt;
        at org.jets3t.service.impl.rest.httpclient.RestS3Service.listAllBucketsImpl(RestS3Service.java:1041)&lt;br&gt;
        at org.jets3t.service.S3Service.listAllBuckets(S3Service.java:1348)&lt;br&gt;
        at org.jets3t.service.S3Service.getBucket(S3Service.java:1578)&lt;br&gt;
        at org.jets3t.service.S3Service.getOrCreateBucket(S3Service.java:1601)&lt;br&gt;
        at com.woextras.S3Utilities.bucketNamed(S3Utilities.java:50)&lt;br&gt;
        at com.woextras.S3HTMLBucketThread.run(S3HTMLBucketThread.java:82)&lt;br&gt;
Caused by: java.net.SocketException: Invalid argument&lt;br&gt;
        at java.net.SocketInputStream.socketRead0(Native Method)&lt;br&gt;
        at java.net.SocketInputStream.read(SocketInputStream.java:129)&lt;br&gt;
        at com.sun.net.ssl.internal.ssl.InputRecord.readFully(InputRecord.java:293)&lt;br&gt;
        at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:331)&lt;br&gt;
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:723)&lt;br&gt;
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.waitForClose(SSLSocketImpl.java:1366)&lt;br&gt;
        at com.sun.net.ssl.internal.ssl.HandshakeOutStream.flush(HandshakeOutStream.java:103)&lt;br&gt;
        at com.sun.net.ssl.internal.ssl.Handshaker.kickstart(Handshaker.java:528)&lt;br&gt;
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.kickstartHandshake(SSLSocketImpl.java:1120)&lt;br&gt;
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1029)&lt;br&gt;
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:622)&lt;br&gt;
        at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:59)&lt;br&gt;
        at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)&lt;br&gt;
        at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)&lt;br&gt;
        at org.apache.commons.httpclient.HttpConnection.flushRequestOutputStream(HttpConnection.java:828)&lt;br&gt;
        at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.flushRequestOutputStream(MultiThreadedHttpConnectionManager.java:1565&lt;br&gt;
)&lt;br&gt;
        at org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:2116)&lt;br&gt;
        at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1096)&lt;br&gt;
        at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)&lt;br&gt;
        at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)&lt;br&gt;
        at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)&lt;br&gt;
        at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)&lt;br&gt;
        at org.jets3t.service.impl.rest.httpclient.RestS3Service.performRequest(RestS3Service.java:342)&lt;br&gt;
        ... 7 more&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Any help would be appreciated.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
- Joe&lt;br&gt;
&lt;br&gt;
---------------------------------------------------------------------&lt;br&gt;
To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23825231&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-unsubscribe@...&lt;/a&gt;&lt;br&gt;
For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23825231&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-help@...&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/JetS3t-Users-f24326.html&quot; embed=&quot;fixTarget[24326]&quot; target=&quot;_top&quot; &gt;JetS3t Users&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/S3-GET-connection-failed-for-tp23824865p23825231.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-23824865</id>
	<title>S3 GET connection failed for</title>
	<published>2009-06-01T17:57:13Z</published>
	<updated>2009-06-01T17:57:13Z</updated>
	<author>
		<name>Joe Moreno-2</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;I have some code that uploads thousands of objects into S3, using &amp;nbsp;
&lt;br&gt;several threads at a time. For some reason, the code runs fine for for &amp;nbsp;
&lt;br&gt;awhile and then it suddenly starts throwing exceptions that look like &amp;nbsp;
&lt;br&gt;this:
&lt;br&gt;&lt;br&gt;[2009-06-01 02:19:34 PDT] &amp;lt;S3HTMLBucketThread-archive.adjix.com : &amp;nbsp;
&lt;br&gt;4xpd-20090501-20090531-713e20e95a60410499d9b79ec596e7a5.csv&amp;gt; &amp;nbsp;
&lt;br&gt;archive.adjix.com Exception writing HTML file to bucket = &amp;nbsp;
&lt;br&gt;org.jets3t.service.S3ServiceException: S3 GET connection failed for '/'
&lt;br&gt;org.jets3t.service.S3ServiceException: S3 GET connection failed for '/'
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at &amp;nbsp;
&lt;br&gt;org 
&lt;br&gt;.jets3t 
&lt;br&gt;.service 
&lt;br&gt;.impl.rest.httpclient.RestS3Service.performRequest(RestS3Service.java: 
&lt;br&gt;516)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at &amp;nbsp;
&lt;br&gt;org 
&lt;br&gt;.jets3t 
&lt;br&gt;.service 
&lt;br&gt;.impl.rest.httpclient.RestS3Service.performRestGet(RestS3Service.java: 
&lt;br&gt;752)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at &amp;nbsp;
&lt;br&gt;org 
&lt;br&gt;.jets3t 
&lt;br&gt;.service 
&lt;br&gt;.impl 
&lt;br&gt;.rest.httpclient.RestS3Service.listAllBucketsImpl(RestS3Service.java: 
&lt;br&gt;1041)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.jets3t.service.S3Service.listAllBuckets(S3Service.java:1348)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.jets3t.service.S3Service.getBucket(S3Service.java:1578)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.jets3t.service.S3Service.getOrCreateBucket(S3Service.java:1601)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at com.woextras.S3Utilities.bucketNamed(S3Utilities.java:50)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at com.woextras.S3HTMLBucketThread.run(S3HTMLBucketThread.java:82)
&lt;br&gt;Caused by: java.net.SocketException: Invalid argument
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.net.SocketInputStream.socketRead0(Native Method)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.net.SocketInputStream.read(SocketInputStream.java:129)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at &amp;nbsp;
&lt;br&gt;com.sun.net.ssl.internal.ssl.InputRecord.readFully(InputRecord.java:293)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:331)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at &amp;nbsp;
&lt;br&gt;com 
&lt;br&gt;.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java: 
&lt;br&gt;723)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at &amp;nbsp;
&lt;br&gt;com 
&lt;br&gt;.sun 
&lt;br&gt;.net.ssl.internal.ssl.SSLSocketImpl.waitForClose(SSLSocketImpl.java: 
&lt;br&gt;1366)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at &amp;nbsp;
&lt;br&gt;com 
&lt;br&gt;.sun 
&lt;br&gt;.net.ssl.internal.ssl.HandshakeOutStream.flush(HandshakeOutStream.java: 
&lt;br&gt;103)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at com.sun.net.ssl.internal.ssl.Handshaker.kickstart(Handshaker.java: 
&lt;br&gt;528)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at &amp;nbsp;
&lt;br&gt;com 
&lt;br&gt;.sun 
&lt;br&gt;.net 
&lt;br&gt;.ssl.internal.ssl.SSLSocketImpl.kickstartHandshake(SSLSocketImpl.java: 
&lt;br&gt;1120)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at &amp;nbsp;
&lt;br&gt;com 
&lt;br&gt;.sun 
&lt;br&gt;.net 
&lt;br&gt;.ssl 
&lt;br&gt;.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java: 
&lt;br&gt;1029)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at &amp;nbsp;
&lt;br&gt;com 
&lt;br&gt;.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java: 
&lt;br&gt;622)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at &amp;nbsp;
&lt;br&gt;com 
&lt;br&gt;.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:59)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java: 
&lt;br&gt;65)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at &amp;nbsp;
&lt;br&gt;org 
&lt;br&gt;.apache 
&lt;br&gt;.commons 
&lt;br&gt;.httpclient 
&lt;br&gt;.HttpConnection.flushRequestOutputStream(HttpConnection.java:828)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager 
&lt;br&gt;$ 
&lt;br&gt;HttpConnectionAdapter 
&lt;br&gt;.flushRequestOutputStream(MultiThreadedHttpConnectionManager.java:1565
&lt;br&gt;)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at &amp;nbsp;
&lt;br&gt;org 
&lt;br&gt;.apache 
&lt;br&gt;.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java: 
&lt;br&gt;2116)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at &amp;nbsp;
&lt;br&gt;org 
&lt;br&gt;.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java: 
&lt;br&gt;1096)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at &amp;nbsp;
&lt;br&gt;org 
&lt;br&gt;.apache 
&lt;br&gt;.commons 
&lt;br&gt;.httpclient 
&lt;br&gt;.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at &amp;nbsp;
&lt;br&gt;org 
&lt;br&gt;.apache 
&lt;br&gt;.commons 
&lt;br&gt;.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java: 
&lt;br&gt;171)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at &amp;nbsp;
&lt;br&gt;org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java: 
&lt;br&gt;397)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at &amp;nbsp;
&lt;br&gt;org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java: 
&lt;br&gt;323)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at &amp;nbsp;
&lt;br&gt;org 
&lt;br&gt;.jets3t 
&lt;br&gt;.service 
&lt;br&gt;.impl.rest.httpclient.RestS3Service.performRequest(RestS3Service.java: 
&lt;br&gt;342)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ... 7 more
&lt;br&gt;&lt;br&gt;&lt;br&gt;Any help would be appreciated.
&lt;br&gt;&lt;br&gt;&lt;br&gt;- Joe
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23824865&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23824865&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/JetS3t-Users-f24326.html&quot; embed=&quot;fixTarget[24326]&quot; target=&quot;_top&quot; &gt;JetS3t Users&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/S3-GET-connection-failed-for-tp23824865p23824865.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-23789865</id>
	<title>Re: Questions about security and confidentiality</title>
	<published>2009-05-29T19:57:42Z</published>
	<updated>2009-05-29T19:57:42Z</updated>
	<author>
		<name>James Murty-3</name>
	</author>
	<content type="html">&lt;div class=&quot;gmail_quote&quot;&gt;&lt;div&gt;Hi Mark,&lt;br&gt; &lt;/div&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
Does Jets3t plans to have any APIs to encrypt/decrypt users data based on&lt;br&gt;
AES256 standards/..&lt;/blockquote&gt;&lt;div&gt;&lt;br&gt;JetS3t includes support for encryption, and combined with the BouncyCastle encryption library that is packaged with the distribution you can use the AES cipher.&lt;br&gt;&lt;br&gt;There is a section called &amp;quot;Encryption properties&amp;quot; on the configuration page that details how to configure service-wide encryption:&lt;br&gt;

&lt;a href=&quot;http://jets3t.s3.amazonaws.com/toolkit/configuration.html#jets3t&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://jets3t.s3.amazonaws.com/toolkit/configuration.html#jets3t&lt;/a&gt;&lt;br&gt;&lt;br&gt;See also the documentation for the EncryptUtil utility class, which provides more fine-grained tools for encrypting/decrypting byte arrays and input streams:&lt;br&gt;

&lt;a href=&quot;http://jets3t.s3.amazonaws.com/api/org/jets3t/service/security/EncryptionUtil.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://jets3t.s3.amazonaws.com/api/org/jets3t/service/security/EncryptionUtil.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;The ObjectUtils class pulls everything together and makes it easy to prepare objects whose data will be encrypted prior to upload:&lt;br&gt;

&lt;font class=&quot;FrameItemFont&quot;&gt;&lt;a style=&quot;&quot; href=&quot;http://jets3t.s3.amazonaws.com/api/org/jets3t/service/utils/ObjectUtils.html&quot; title=&quot;class in org.jets3t.service.utils&quot; target=&quot;classFrame&quot; rel=&quot;nofollow&quot;&gt;http://jets3t.s3.amazonaws.com/api/org/jets3t/service/utils/ObjectUtils.html&lt;/a&gt;&lt;/font&gt;&lt;br&gt;

&lt;br&gt; &lt;/div&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
Thanks for making things clear..:-)&lt;/blockquote&gt;&lt;div&gt;&lt;br&gt;You&amp;#39;re welcome, good luck with it.&lt;br&gt;&lt;br&gt;James&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/JetS3t-Users-f24326.html&quot; embed=&quot;fixTarget[24326]&quot; target=&quot;_top&quot; &gt;JetS3t Users&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23789865.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-23789633</id>
	<title>Re: Questions about security and confidentiality</title>
	<published>2009-05-29T19:23:54Z</published>
	<updated>2009-05-29T19:23:54Z</updated>
	<author>
		<name>MarkAtHarvest</name>
	</author>
	<content type="html">Thanks James, for making things crystal clear. The more I think of it more things get complex..
&lt;br&gt;&lt;br&gt;I have the big picture now, here is what I am planning to do..
&lt;br&gt;-- I do not have a choice but keep the data encrypted all times..
&lt;br&gt;-- Rules to keep different buckets for different access points
&lt;br&gt;-- Use s3fs/subcloud to mount S3 on EC2 
&lt;br&gt;-- Samba uses the Mount Point (how will samba decrypt and show the data to client needs to be formulated, I guess the decrypion will happen on Server..)
&lt;br&gt;-- Put some 3rdParty/softwares , proper access controls and procedures to make sure admins accidently
&lt;br&gt;do not access the data. but are aware with the hurdles, and logging, that they are accessing on purpose.
&lt;br&gt;-- EBS is worth looking, but S3 webservices on JetS3T is so easy, and with new features getting added it makes life easier for programmers, with same code can be resused and extend to create different type of clients. 
&lt;br&gt;&amp;nbsp; &amp;nbsp;* I am not aware of any ready made APIs, of the opinion that there is lot of work from ground up to create a web application on top of it. And have to repeat the same.. 
&lt;br&gt;&lt;br&gt;Does Jets3t plans to have any APIs to encrypt/decrypt users data based on AES256 standards/..
&lt;br&gt;&lt;br&gt;Thanks for making things clear..&lt;img class='smiley' src='http://old.nabble.com/images/smiley/smiley_beam.gif' /&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;blockquote class=&quot;quote light-black dark-border-color&quot;&gt;&lt;div class=&quot;quote light-border-color&quot;&gt;
&lt;div class=&quot;quote-author&quot; style=&quot;font-weight: bold;&quot;&gt;James Murty-3 wrote:&lt;/div&gt;
&lt;div class=&quot;quote-message shrinkable-quote&quot;&gt;Mark, to make your objectives achievable I think you need to simplify things
&lt;br&gt;as much as you can. You say that your requirements are simple, but I don't
&lt;br&gt;think they are.
&lt;br&gt;&lt;br&gt;Here are some things you need to think about:
&lt;br&gt;&lt;br&gt;- If you want to protect your customer's data &amp;quot;at rest&amp;quot; from Amazon staff,
&lt;br&gt;or from your AWS account being compromised, you must encrypt the data. You
&lt;br&gt;have no choice, even though it makes everything more complicated.
&lt;br&gt;&lt;br&gt;- If you encrypt data, you need to decide where the encryption/decryption
&lt;br&gt;will take place.
&lt;br&gt;* You get the most security if client-side software does this, in which case
&lt;br&gt;no-one but your clients can read the data. However the clients then need to
&lt;br&gt;deal with the complexity of installing/managing software, and you need to
&lt;br&gt;provide this software.
&lt;br&gt;* If you want to provide web access to the data without any client-side
&lt;br&gt;software, you will need to encrypt/decrypt on your server. This is less
&lt;br&gt;secure but more user-friendly. You will also need to trust your admins.
&lt;br&gt;&lt;br&gt;- Trying to have multiple access points for writing to the same storage
&lt;br&gt;space is a bad idea. Only do this if you will have some very smart
&lt;br&gt;software/processes to manage (or avoid) data writing collisions, or if the
&lt;br&gt;Cloudfront and JetS3t components use completely different S3 buckets. This
&lt;br&gt;isn't an issue of compatibility between Cloudfront and JetS3t
&lt;br&gt;&lt;br&gt;- Providing SAMBA access to S3 objects sounds very difficult indeed. Are you
&lt;br&gt;going to cache all or some of your S3 objects on an EC2 instance to make it
&lt;br&gt;available via SAMBA? If not, how will you mediate between the SAMBA server
&lt;br&gt;on EC2 and your S3 storage? If so, how and where will you handle
&lt;br&gt;encryption/decryption of the data?
&lt;br&gt;&lt;br&gt;- Jon's comment on using EC2's Elastic Block Store drives is worth
&lt;br&gt;considering.
&lt;br&gt;&lt;br&gt;James
&lt;br&gt;&lt;br&gt;On Wed, May 27, 2009 at 1:40 PM, MarkAtHarvest &amp;lt;mark@harvestinfotech.com&amp;gt;wrote:
&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thank you Jonathan , James.
&lt;br&gt;&amp;gt; I think I need to work more on IT Standards which acceptable. Will comeback
&lt;br&gt;&amp;gt; on it
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; About dual access, I need to use S3, I am very comfortable with it, rather
&lt;br&gt;&amp;gt; than going for a new solution. I think with Subcloud I can use Jets3t (need
&lt;br&gt;&amp;gt; to confirm on it though)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Jonathan Harlap wrote:
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Hi Mark,
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; First off, I'm leaving aside what I think is an obvious issue you'll need
&lt;br&gt;&amp;gt; &amp;gt; to
&lt;br&gt;&amp;gt; &amp;gt; resolve about the two access methods conflicting (ie, users manipulating
&lt;br&gt;&amp;gt; &amp;gt; the
&lt;br&gt;&amp;gt; &amp;gt; same data via your web app and smb simultaneously). &amp;nbsp;James already
&lt;br&gt;&amp;gt; &amp;gt; mentioned
&lt;br&gt;&amp;gt; &amp;gt; it and it's a property of your apparent design not of the AWS services.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; What strikes me as particularly interesting your statement that S3 will
&lt;br&gt;&amp;gt; be
&lt;br&gt;&amp;gt; &amp;gt; mounted in an EC2 instance to provide smb access. &amp;nbsp;If you're doing that,
&lt;br&gt;&amp;gt; &amp;gt; couldn't you just as well put your data in an EBS volume, mount that to
&lt;br&gt;&amp;gt; &amp;gt; your
&lt;br&gt;&amp;gt; &amp;gt; EC2 instance for smb access and *also* have your web app interact with
&lt;br&gt;&amp;gt; the
&lt;br&gt;&amp;gt; &amp;gt; data which now appears to exist on a local mount point? &amp;nbsp;Then S3 (as an
&lt;br&gt;&amp;gt; &amp;gt; API)
&lt;br&gt;&amp;gt; &amp;gt; is out of the picture entirely and you have what sounds like a simpler
&lt;br&gt;&amp;gt; &amp;gt; problem to solve. &amp;nbsp;I put that aside now as well, as it's more a question
&lt;br&gt;&amp;gt; &amp;gt; of
&lt;br&gt;&amp;gt; &amp;gt; your design than anything S3 specific, which was the purpose of the
&lt;br&gt;&amp;gt; &amp;gt; question, I believe.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; S3 signed urls are not related to jets3t, although jets3t does facilitate
&lt;br&gt;&amp;gt; &amp;gt; their creation. &amp;nbsp;However, I interpret your question to say that you lose
&lt;br&gt;&amp;gt; &amp;gt; the
&lt;br&gt;&amp;gt; &amp;gt; ability to point user's web browsers directly at a signed url, and this
&lt;br&gt;&amp;gt; &amp;gt; would be correct if you encrypt the data in S3. &amp;nbsp;If you encrypt the data
&lt;br&gt;&amp;gt; &amp;gt; you
&lt;br&gt;&amp;gt; &amp;gt; store, then you will need to provide a client (whether it be a web app or
&lt;br&gt;&amp;gt; &amp;gt; a
&lt;br&gt;&amp;gt; &amp;gt; thick client) that will perform the encryption/decryption for your
&lt;br&gt;&amp;gt; &amp;gt; clients.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Unfortunately, I don't think anyone outside your business can really
&lt;br&gt;&amp;gt; &amp;gt; answer
&lt;br&gt;&amp;gt; &amp;gt; the questions you're posing beyond what has already been said. &amp;nbsp;We don't
&lt;br&gt;&amp;gt; &amp;gt; know what your application does. &amp;nbsp;We can't tell you whether to encrypt
&lt;br&gt;&amp;gt; &amp;gt; your
&lt;br&gt;&amp;gt; &amp;gt; data and, if so, how, nor how to adapt your app design accordingly.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Good luck with your project.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Cheers,
&lt;br&gt;&amp;gt; &amp;gt; Jonathan
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; On Wed, May 27, 2009 at 1:58 PM, MarkAtHarvest
&lt;br&gt;&amp;gt; &amp;gt; &amp;lt;mark@harvestinfotech.com&amp;gt;wrote:
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Thanks Jonathan for the interesting links.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; My requirement is very simple, just want to build a application based on
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; S3
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; where I can store customers data, and give them a guarantee that your
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; data
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; is safe and secure, while at move and while at rest.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; 1. My JetS3t Web application will access the data for the customer as
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; well
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; as
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; 2. S3 will get mounted on EC2 for a SAMBA access.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Data while at move can be protected with SSL, I am more concerned with
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; data
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; while at rest, also about accessKey, SecretKey, TokenIDs.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Questions which arise are
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; 1. Do i need to encrypt the S3 data for such type of situations (If I
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; encrypt, then i loose the JetS3t features like getSignedUrl, which
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; creates
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; a
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; link to open the file directly from S3 instead of coming to our servers)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; 2. what are must must things I need to do.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Thanks again for your inputs
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Jonathan Harlap wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; Mark,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; I suspect one source of confusion for you is the claim of HIPAA
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; compliance.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; Firstly, AWS itself is not HIPAA compliant nor does it try to be. &amp;nbsp;The
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; whitepaper in question discusses some of the strategies that might be
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; used
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; by AWS customers to build HIPAA compliant systems that run on the AWS
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; cloud.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; As to crypto, high security, and so on - I don't find your need very
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; clear,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; so I can't offer any specific advice other than to say that crypto is
&lt;br&gt;&amp;gt; a
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; very
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; tricky thing to do right, and a very easy thing to do wrong, so for
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; your
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; clients' sake, do it carefully. &amp;nbsp;For a fun example of how the little
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; details
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; make a difference, see
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://www.codinghorror.com/blog/archives/001267.htmland&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.codinghorror.com/blog/archives/001267.htmland&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://www.codinghorror.com/blog/archives/001268.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.codinghorror.com/blog/archives/001268.html&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; Cheers,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; J
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; On Wed, May 27, 2009 at 8:47 AM, MarkAtHarvest
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;lt;mark@harvestinfotech.com&amp;gt;wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; Thank you for clearing my doubt!
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; But I see white papers saying Amazon AWS is HIPAA compliant, which is
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; a
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; stringent security standard.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; The confusion I have is
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; 1. I have a webcient build on JetS3 application,soon be adding a
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; DevPay
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; support.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; 2. I also want to sync S3 files on EC2 using something like Subcloud
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; and
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; provide access to the data
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; on clients windows explorer using SAMBA.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; Now if I do not encrypt, and use ACL to control access on the S3, so
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; that
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; only the respective client has an access to it.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; Subcloud will not be able to import the data , if it does not have
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; permission, or it will be able to import the data using secret key.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; As per what you say, I need to keep that secretKey really secret and
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; only
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; one Admin can know it and there should be policies to access that
&lt;br&gt;&amp;gt; key.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; So all the S3 products out there in market who use S3, administrator
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; do
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; have
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; a access to data, which might be controlled by some measures. So how
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; can
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; be
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; claim high security compliance
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; Thanks for addressing this question, I am not able to get a clean
&lt;br&gt;&amp;gt; head
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; path
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; on it
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; Now is that acceptable in terms of Secu
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; James Murty-3 wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; The only way to allow clients to store encrypted data in S3 in such
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; a
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; way
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; that administrators cannot read it, is to provide some kind of
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; application
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; the client can run on his/her own machine to do this work.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; If you don't trust your admins, there is little point encrypting a
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; user's
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; files on your own server because admins will have simply be able to
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; access
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; to the data there, rather than from S3 directly. Encrypting the
&lt;br&gt;&amp;gt; data
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; on
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; your
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; server would protect it from the Amazon admins who maintain S3, but
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; not
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; from
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; your own server admins.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; A custom client app would allow your clients to automatically
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; encrypt
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; data
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; prior to uploading, and to decrypt it when downloading. This app
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; could
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; also
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; be designed to interact with your server component to obtain signed
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; URLs
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; to
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; gain access to S3.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; The problem is, such an app doesn't exist as far as I know. The
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; combination
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; of JetS3t's CockpitLite and Gatekeeper applications comes close,
&lt;br&gt;&amp;gt; but
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; CockpitLite does not do any encryption.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; Hope this helps,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; James
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; ---
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://www.jamesmurty.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.jamesmurty.com&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; On Tue, May 26, 2009 at 9:24 PM, MarkAtHarvest
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;lt;mark@harvestinfotech.com&amp;gt;wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; My jets3t client is working fine, current I am trying to upgrade
&lt;br&gt;&amp;gt; it
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; to
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; DEV
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; Pay account. I would like to ask if I can get little bit guidance
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; on
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; following
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; I am using Amazon Dev Pay, then so as that an evil administrator
&lt;br&gt;&amp;gt; is
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; not
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; able
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; to see the S3 files of customers, what exactly do I need to do
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; 1. can be to encrypt all the files stored in S3.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; The problem I see with that approach is,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; *. I cannot use Amazon HTTP Post to directly upload files on S3,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; without
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; going through my server.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; *. I cannot use createSignedGetUrl(), to create signed URLs to
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; expose
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; links for a temporary time, as the files need to be brought to my
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; sever
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; before user can download it.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; Is there a way I can solve the above two problems..
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23735783.html&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23735783.html&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; Sent from the JetS3t Users mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; To unsubscribe, e-mail: users-unsubscribe@jets3t.dev.java.net
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; For additional commands, e-mail: users-help@jets3t.dev.java.net
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23741804.html&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23741804.html&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; Sent from the JetS3t Users mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; To unsubscribe, e-mail: users-unsubscribe@jets3t.dev.java.net
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; For additional commands, e-mail: users-help@jets3t.dev.java.net
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23747665.html&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23747665.html&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Sent from the JetS3t Users mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; To unsubscribe, e-mail: users-unsubscribe@jets3t.dev.java.net
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; For additional commands, e-mail: users-help@jets3t.dev.java.net
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23750391.html&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23750391.html&lt;/a&gt;&lt;br&gt;&amp;gt; Sent from the JetS3t Users mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: users-unsubscribe@jets3t.dev.java.net
&lt;br&gt;&amp;gt; For additional commands, e-mail: users-help@jets3t.dev.java.net
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/JetS3t-Users-f24326.html&quot; embed=&quot;fixTarget[24326]&quot; target=&quot;_top&quot; &gt;JetS3t Users&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23789633.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-23767978</id>
	<title>Re: Questions about security and confidentiality</title>
	<published>2009-05-28T12:01:57Z</published>
	<updated>2009-05-28T12:01:57Z</updated>
	<author>
		<name>James Murty-3</name>
	</author>
	<content type="html">Mark, to make your objectives achievable I think you need to simplify things as much as you can. You say that your requirements are simple, but I don&amp;#39;t think they are.&lt;br&gt;&lt;br&gt;Here are some things you need to think about:&lt;br&gt;

&lt;br&gt;- If you want to protect your customer&amp;#39;s data &amp;quot;at rest&amp;quot; from Amazon staff, or from your AWS account being compromised, you must encrypt the data. You have no choice, even though it makes everything more complicated.&lt;br&gt;

&lt;br&gt;- If you encrypt data, you need to decide where the encryption/decryption will take place. &lt;br&gt;* You get the most security if client-side software does this, in which case no-one but your clients can read the data. However the clients then need to deal with the complexity of installing/managing software, and you need to provide this software.&lt;br&gt;

* If you want to provide web access to the data without any client-side software, you will need to encrypt/decrypt on your server. This is less secure but more user-friendly. You will also need to trust your admins.&lt;br&gt;&lt;br&gt;

- Trying to have multiple access points for writing to the same storage space is a bad idea. Only do this if you will have some very smart software/processes to manage (or avoid) data writing collisions, or if the Cloudfront and JetS3t components use completely different S3 buckets. This isn&amp;#39;t an issue of compatibility between Cloudfront and JetS3t&lt;br&gt;

&lt;br&gt;- Providing SAMBA access to S3 objects sounds very difficult indeed. Are you going to cache all or some of your S3 objects on an EC2 instance to make it available via SAMBA? If not, how will you mediate between the SAMBA server on EC2 and your S3 storage? If so, how and where will you handle encryption/decryption of the data?&lt;br&gt;

&lt;br&gt;- Jon&amp;#39;s comment on using EC2&amp;#39;s Elastic Block Store drives is worth considering.&lt;br&gt;&lt;br&gt;James&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Wed, May 27, 2009 at 1:40 PM, MarkAtHarvest &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23767978&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;mark@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;

&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;&lt;br&gt;
Thank you Jonathan , James.&lt;br&gt;
I think I need to work more on IT Standards which acceptable. Will comeback&lt;br&gt;
on it&lt;br&gt;
&lt;br&gt;
About dual access, I need to use S3, I am very comfortable with it, rather&lt;br&gt;
than going for a new solution. I think with Subcloud I can use Jets3t (need&lt;br&gt;
to confirm on it though)&lt;br&gt;
&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;h5&quot;&gt;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Jonathan Harlap wrote:&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Hi Mark,&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; First off, I&amp;#39;m leaving aside what I think is an obvious issue you&amp;#39;ll need&lt;br&gt;
&amp;gt; to&lt;br&gt;
&amp;gt; resolve about the two access methods conflicting (ie, users manipulating&lt;br&gt;
&amp;gt; the&lt;br&gt;
&amp;gt; same data via your web app and smb simultaneously).  James already&lt;br&gt;
&amp;gt; mentioned&lt;br&gt;
&amp;gt; it and it&amp;#39;s a property of your apparent design not of the AWS services.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; What strikes me as particularly interesting your statement that S3 will be&lt;br&gt;
&amp;gt; mounted in an EC2 instance to provide smb access.  If you&amp;#39;re doing that,&lt;br&gt;
&amp;gt; couldn&amp;#39;t you just as well put your data in an EBS volume, mount that to&lt;br&gt;
&amp;gt; your&lt;br&gt;
&amp;gt; EC2 instance for smb access and *also* have your web app interact with the&lt;br&gt;
&amp;gt; data which now appears to exist on a local mount point?  Then S3 (as an&lt;br&gt;
&amp;gt; API)&lt;br&gt;
&amp;gt; is out of the picture entirely and you have what sounds like a simpler&lt;br&gt;
&amp;gt; problem to solve.  I put that aside now as well, as it&amp;#39;s more a question&lt;br&gt;
&amp;gt; of&lt;br&gt;
&amp;gt; your design than anything S3 specific, which was the purpose of the&lt;br&gt;
&amp;gt; question, I believe.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; S3 signed urls are not related to jets3t, although jets3t does facilitate&lt;br&gt;
&amp;gt; their creation.  However, I interpret your question to say that you lose&lt;br&gt;
&amp;gt; the&lt;br&gt;
&amp;gt; ability to point user&amp;#39;s web browsers directly at a signed url, and this&lt;br&gt;
&amp;gt; would be correct if you encrypt the data in S3.  If you encrypt the data&lt;br&gt;
&amp;gt; you&lt;br&gt;
&amp;gt; store, then you will need to provide a client (whether it be a web app or&lt;br&gt;
&amp;gt; a&lt;br&gt;
&amp;gt; thick client) that will perform the encryption/decryption for your&lt;br&gt;
&amp;gt; clients.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Unfortunately, I don&amp;#39;t think anyone outside your business can really&lt;br&gt;
&amp;gt; answer&lt;br&gt;
&amp;gt; the questions you&amp;#39;re posing beyond what has already been said.  We don&amp;#39;t&lt;br&gt;
&amp;gt; know what your application does.  We can&amp;#39;t tell you whether to encrypt&lt;br&gt;
&amp;gt; your&lt;br&gt;
&amp;gt; data and, if so, how, nor how to adapt your app design accordingly.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Good luck with your project.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Cheers,&lt;br&gt;
&amp;gt; Jonathan&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; On Wed, May 27, 2009 at 1:58 PM, MarkAtHarvest&lt;br&gt;
&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23767978&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;mark@...&lt;/a&gt;&amp;gt;wrote:&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Thanks Jonathan for the interesting links.&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; My requirement is very simple, just want to build a application based on&lt;br&gt;
&amp;gt;&amp;gt; S3&lt;br&gt;
&amp;gt;&amp;gt; where I can store customers data, and give them a guarantee that your&lt;br&gt;
&amp;gt;&amp;gt; data&lt;br&gt;
&amp;gt;&amp;gt; is safe and secure, while at move and while at rest.&lt;br&gt;
&amp;gt;&amp;gt; 1. My JetS3t Web application will access the data for the customer as&lt;br&gt;
&amp;gt;&amp;gt; well&lt;br&gt;
&amp;gt;&amp;gt; as&lt;br&gt;
&amp;gt;&amp;gt; 2. S3 will get mounted on EC2 for a SAMBA access.&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Data while at move can be protected with SSL, I am more concerned with&lt;br&gt;
&amp;gt;&amp;gt; data&lt;br&gt;
&amp;gt;&amp;gt; while at rest, also about accessKey, SecretKey, TokenIDs.&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Questions which arise are&lt;br&gt;
&amp;gt;&amp;gt; 1. Do i need to encrypt the S3 data for such type of situations (If I&lt;br&gt;
&amp;gt;&amp;gt; encrypt, then i loose the JetS3t features like getSignedUrl, which&lt;br&gt;
&amp;gt;&amp;gt; creates&lt;br&gt;
&amp;gt;&amp;gt; a&lt;br&gt;
&amp;gt;&amp;gt; link to open the file directly from S3 instead of coming to our servers)&lt;br&gt;
&amp;gt;&amp;gt; 2. what are must must things I need to do.&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Thanks again for your inputs&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Jonathan Harlap wrote:&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; Mark,&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; I suspect one source of confusion for you is the claim of HIPAA&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; compliance.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; Firstly, AWS itself is not HIPAA compliant nor does it try to be.  The&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; whitepaper in question discusses some of the strategies that might be&lt;br&gt;
&amp;gt;&amp;gt; used&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; by AWS customers to build HIPAA compliant systems that run on the AWS&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; cloud.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; As to crypto, high security, and so on - I don&amp;#39;t find your need very&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; clear,&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; so I can&amp;#39;t offer any specific advice other than to say that crypto is a&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; very&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; tricky thing to do right, and a very easy thing to do wrong, so for&lt;br&gt;
&amp;gt;&amp;gt; your&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; clients&amp;#39; sake, do it carefully.  For a fun example of how the little&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; details&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; make a difference, see&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://www.codinghorror.com/blog/archives/001267.htmland&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://www.codinghorror.com/blog/archives/001267.htmland&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://www.codinghorror.com/blog/archives/001268.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://www.codinghorror.com/blog/archives/001268.html&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; Cheers,&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; J&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; On Wed, May 27, 2009 at 8:47 AM, MarkAtHarvest&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23767978&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;mark@...&lt;/a&gt;&amp;gt;wrote:&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; Thank you for clearing my doubt!&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; But I see white papers saying Amazon AWS is HIPAA compliant, which is&lt;br&gt;
&amp;gt;&amp;gt; a&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; stringent security standard.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; The confusion I have is&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; 1. I have a webcient build on JetS3 application,soon be adding a&lt;br&gt;
&amp;gt;&amp;gt; DevPay&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; support.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; 2. I also want to sync S3 files on EC2 using something like Subcloud&lt;br&gt;
&amp;gt;&amp;gt; and&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; provide access to the data&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; on clients windows explorer using SAMBA.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; Now if I do not encrypt, and use ACL to control access on the S3, so&lt;br&gt;
&amp;gt;&amp;gt; that&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; only the respective client has an access to it.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; Subcloud will not be able to import the data , if it does not have&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; permission, or it will be able to import the data using secret key.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; As per what you say, I need to keep that secretKey really secret and&lt;br&gt;
&amp;gt;&amp;gt; only&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; one Admin can know it and there should be policies to access that key.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; So all the S3 products out there in market who use S3, administrator&lt;br&gt;
&amp;gt;&amp;gt; do&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; have&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; a access to data, which might be controlled by some measures. So how&lt;br&gt;
&amp;gt;&amp;gt; can&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; be&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; claim high security compliance&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; Thanks for addressing this question, I am not able to get a clean head&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; path&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; on it&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; Now is that acceptable in terms of Secu&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; James Murty-3 wrote:&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; The only way to allow clients to store encrypted data in S3 in such&lt;br&gt;
&amp;gt;&amp;gt; a&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; way&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; that administrators cannot read it, is to provide some kind of&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; application&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; the client can run on his/her own machine to do this work.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; If you don&amp;#39;t trust your admins, there is little point encrypting a&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; user&amp;#39;s&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; files on your own server because admins will have simply be able to&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; access&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; to the data there, rather than from S3 directly. Encrypting the data&lt;br&gt;
&amp;gt;&amp;gt; on&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; your&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; server would protect it from the Amazon admins who maintain S3, but&lt;br&gt;
&amp;gt;&amp;gt; not&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; from&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; your own server admins.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; A custom client app would allow your clients to automatically&lt;br&gt;
&amp;gt;&amp;gt; encrypt&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; data&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; prior to uploading, and to decrypt it when downloading. This app&lt;br&gt;
&amp;gt;&amp;gt; could&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; also&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; be designed to interact with your server component to obtain signed&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; URLs&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; to&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; gain access to S3.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; The problem is, such an app doesn&amp;#39;t exist as far as I know. The&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; combination&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; of JetS3t&amp;#39;s CockpitLite and Gatekeeper applications comes close, but&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; CockpitLite does not do any encryption.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; Hope this helps,&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; James&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; ---&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://www.jamesmurty.com&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://www.jamesmurty.com&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; On Tue, May 26, 2009 at 9:24 PM, MarkAtHarvest&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23767978&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;mark@...&lt;/a&gt;&amp;gt;wrote:&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; My jets3t client is working fine, current I am trying to upgrade it&lt;br&gt;
&amp;gt;&amp;gt; to&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; DEV&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; Pay account. I would like to ask if I can get little bit guidance&lt;br&gt;
&amp;gt;&amp;gt; on&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; following&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; I am using Amazon Dev Pay, then so as that an evil administrator is&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; not&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; able&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; to see the S3 files of customers, what exactly do I need to do&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; 1. can be to encrypt all the files stored in S3.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;   The problem I see with that approach is,&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;   *. I cannot use Amazon HTTP Post to directly upload files on S3,&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; without&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; going through my server.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;   *. I cannot use createSignedGetUrl(), to create signed URLs to&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; expose&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; links for a temporary time, as the files need to be brought to my&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; sever&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; before user can download it.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; Is there a way I can solve the above two problems..&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; --&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; View this message in context:&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23735783.html&quot; target=&quot;_blank&quot;&gt;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23735783.html&lt;/a&gt;&lt;br&gt;


&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; Sent from the JetS3t Users mailing list archive at Nabble.com.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; ---------------------------------------------------------------------&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23767978&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-unsubscribe@...&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23767978&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-help@...&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; --&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; View this message in context:&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23741804.html&quot; target=&quot;_blank&quot;&gt;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23741804.html&lt;/a&gt;&lt;br&gt;


&amp;gt;&amp;gt; &amp;gt;&amp;gt; Sent from the JetS3t Users mailing list archive at Nabble.com.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; ---------------------------------------------------------------------&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23767978&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-unsubscribe@...&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23767978&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-help@...&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; --&lt;br&gt;
&amp;gt;&amp;gt; View this message in context:&lt;br&gt;
&amp;gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23747665.html&quot; target=&quot;_blank&quot;&gt;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23747665.html&lt;/a&gt;&lt;br&gt;


&amp;gt;&amp;gt; Sent from the JetS3t Users mailing list archive at Nabble.com.&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; ---------------------------------------------------------------------&lt;br&gt;
&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23767978&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-unsubscribe@...&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23767978&amp;i=9&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-help@...&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;font color=&quot;#888888&quot;&gt;--&lt;br&gt;
View this message in context: &lt;a href=&quot;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23750391.html&quot; target=&quot;_blank&quot;&gt;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23750391.html&lt;/a&gt;&lt;br&gt;


&lt;/font&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;h5&quot;&gt;Sent from the JetS3t Users mailing list archive at Nabble.com.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
---------------------------------------------------------------------&lt;br&gt;
To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23767978&amp;i=10&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-unsubscribe@...&lt;/a&gt;&lt;br&gt;
For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23767978&amp;i=11&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-help@...&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/JetS3t-Users-f24326.html&quot; embed=&quot;fixTarget[24326]&quot; target=&quot;_top&quot; &gt;JetS3t Users&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23767978.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-23750391</id>
	<title>Re: Questions about security and confidentiality</title>
	<published>2009-05-27T13:40:31Z</published>
	<updated>2009-05-27T13:40:31Z</updated>
	<author>
		<name>MarkAtHarvest</name>
	</author>
	<content type="html">Thank you Jonathan , James.
&lt;br&gt;I think I need to work more on IT Standards which acceptable. Will comeback on it
&lt;br&gt;&lt;br&gt;About dual access, I need to use S3, I am very comfortable with it, rather than going for a new solution. I think with Subcloud I can use Jets3t (need to confirm on it though)
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;blockquote class=&quot;quote light-black dark-border-color&quot;&gt;&lt;div class=&quot;quote light-border-color&quot;&gt;
&lt;div class=&quot;quote-author&quot; style=&quot;font-weight: bold;&quot;&gt;Jonathan Harlap wrote:&lt;/div&gt;
&lt;div class=&quot;quote-message shrinkable-quote&quot;&gt;Hi Mark,
&lt;br&gt;&lt;br&gt;First off, I'm leaving aside what I think is an obvious issue you'll need to
&lt;br&gt;resolve about the two access methods conflicting (ie, users manipulating the
&lt;br&gt;same data via your web app and smb simultaneously). &amp;nbsp;James already mentioned
&lt;br&gt;it and it's a property of your apparent design not of the AWS services.
&lt;br&gt;&lt;br&gt;What strikes me as particularly interesting your statement that S3 will be
&lt;br&gt;mounted in an EC2 instance to provide smb access. &amp;nbsp;If you're doing that,
&lt;br&gt;couldn't you just as well put your data in an EBS volume, mount that to your
&lt;br&gt;EC2 instance for smb access and *also* have your web app interact with the
&lt;br&gt;data which now appears to exist on a local mount point? &amp;nbsp;Then S3 (as an API)
&lt;br&gt;is out of the picture entirely and you have what sounds like a simpler
&lt;br&gt;problem to solve. &amp;nbsp;I put that aside now as well, as it's more a question of
&lt;br&gt;your design than anything S3 specific, which was the purpose of the
&lt;br&gt;question, I believe.
&lt;br&gt;&lt;br&gt;S3 signed urls are not related to jets3t, although jets3t does facilitate
&lt;br&gt;their creation. &amp;nbsp;However, I interpret your question to say that you lose the
&lt;br&gt;ability to point user's web browsers directly at a signed url, and this
&lt;br&gt;would be correct if you encrypt the data in S3. &amp;nbsp;If you encrypt the data you
&lt;br&gt;store, then you will need to provide a client (whether it be a web app or a
&lt;br&gt;thick client) that will perform the encryption/decryption for your clients.
&lt;br&gt;&lt;br&gt;Unfortunately, I don't think anyone outside your business can really answer
&lt;br&gt;the questions you're posing beyond what has already been said. &amp;nbsp;We don't
&lt;br&gt;know what your application does. &amp;nbsp;We can't tell you whether to encrypt your
&lt;br&gt;data and, if so, how, nor how to adapt your app design accordingly.
&lt;br&gt;&lt;br&gt;Good luck with your project.
&lt;br&gt;&lt;br&gt;Cheers,
&lt;br&gt;Jonathan
&lt;br&gt;&lt;br&gt;&lt;br&gt;On Wed, May 27, 2009 at 1:58 PM, MarkAtHarvest &amp;lt;mark@harvestinfotech.com&amp;gt;wrote:
&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks Jonathan for the interesting links.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; My requirement is very simple, just want to build a application based on S3
&lt;br&gt;&amp;gt; where I can store customers data, and give them a guarantee that your data
&lt;br&gt;&amp;gt; is safe and secure, while at move and while at rest.
&lt;br&gt;&amp;gt; 1. My JetS3t Web application will access the data for the customer as well
&lt;br&gt;&amp;gt; as
&lt;br&gt;&amp;gt; 2. S3 will get mounted on EC2 for a SAMBA access.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Data while at move can be protected with SSL, I am more concerned with data
&lt;br&gt;&amp;gt; while at rest, also about accessKey, SecretKey, TokenIDs.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Questions which arise are
&lt;br&gt;&amp;gt; 1. Do i need to encrypt the S3 data for such type of situations (If I
&lt;br&gt;&amp;gt; encrypt, then i loose the JetS3t features like getSignedUrl, which creates
&lt;br&gt;&amp;gt; a
&lt;br&gt;&amp;gt; link to open the file directly from S3 instead of coming to our servers)
&lt;br&gt;&amp;gt; 2. what are must must things I need to do.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks again for your inputs
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Jonathan Harlap wrote:
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Mark,
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; I suspect one source of confusion for you is the claim of HIPAA
&lt;br&gt;&amp;gt; &amp;gt; compliance.
&lt;br&gt;&amp;gt; &amp;gt; Firstly, AWS itself is not HIPAA compliant nor does it try to be. &amp;nbsp;The
&lt;br&gt;&amp;gt; &amp;gt; whitepaper in question discusses some of the strategies that might be
&lt;br&gt;&amp;gt; used
&lt;br&gt;&amp;gt; &amp;gt; by AWS customers to build HIPAA compliant systems that run on the AWS
&lt;br&gt;&amp;gt; &amp;gt; cloud.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; As to crypto, high security, and so on - I don't find your need very
&lt;br&gt;&amp;gt; &amp;gt; clear,
&lt;br&gt;&amp;gt; &amp;gt; so I can't offer any specific advice other than to say that crypto is a
&lt;br&gt;&amp;gt; &amp;gt; very
&lt;br&gt;&amp;gt; &amp;gt; tricky thing to do right, and a very easy thing to do wrong, so for your
&lt;br&gt;&amp;gt; &amp;gt; clients' sake, do it carefully. &amp;nbsp;For a fun example of how the little
&lt;br&gt;&amp;gt; &amp;gt; details
&lt;br&gt;&amp;gt; &amp;gt; make a difference, see
&lt;br&gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://www.codinghorror.com/blog/archives/001267.htmland&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.codinghorror.com/blog/archives/001267.htmland&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://www.codinghorror.com/blog/archives/001268.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.codinghorror.com/blog/archives/001268.html&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Cheers,
&lt;br&gt;&amp;gt; &amp;gt; J
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; On Wed, May 27, 2009 at 8:47 AM, MarkAtHarvest
&lt;br&gt;&amp;gt; &amp;gt; &amp;lt;mark@harvestinfotech.com&amp;gt;wrote:
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Thank you for clearing my doubt!
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; But I see white papers saying Amazon AWS is HIPAA compliant, which is a
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; stringent security standard.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; The confusion I have is
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; 1. I have a webcient build on JetS3 application,soon be adding a DevPay
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; support.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; 2. I also want to sync S3 files on EC2 using something like Subcloud and
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; provide access to the data
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; on clients windows explorer using SAMBA.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Now if I do not encrypt, and use ACL to control access on the S3, so
&lt;br&gt;&amp;gt; that
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; only the respective client has an access to it.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Subcloud will not be able to import the data , if it does not have
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; permission, or it will be able to import the data using secret key.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; As per what you say, I need to keep that secretKey really secret and
&lt;br&gt;&amp;gt; only
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; one Admin can know it and there should be policies to access that key.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; So all the S3 products out there in market who use S3, administrator do
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; have
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; a access to data, which might be controlled by some measures. So how can
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; be
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; claim high security compliance
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Thanks for addressing this question, I am not able to get a clean head
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; path
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; on it
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Now is that acceptable in terms of Secu
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; James Murty-3 wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; The only way to allow clients to store encrypted data in S3 in such a
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; way
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; that administrators cannot read it, is to provide some kind of
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; application
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; the client can run on his/her own machine to do this work.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; If you don't trust your admins, there is little point encrypting a
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; user's
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; files on your own server because admins will have simply be able to
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; access
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; to the data there, rather than from S3 directly. Encrypting the data
&lt;br&gt;&amp;gt; on
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; your
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; server would protect it from the Amazon admins who maintain S3, but
&lt;br&gt;&amp;gt; not
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; from
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; your own server admins.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; A custom client app would allow your clients to automatically encrypt
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; data
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; prior to uploading, and to decrypt it when downloading. This app could
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; also
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; be designed to interact with your server component to obtain signed
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; URLs
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; to
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; gain access to S3.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; The problem is, such an app doesn't exist as far as I know. The
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; combination
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; of JetS3t's CockpitLite and Gatekeeper applications comes close, but
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; CockpitLite does not do any encryption.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; Hope this helps,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; James
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; ---
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://www.jamesmurty.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.jamesmurty.com&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; On Tue, May 26, 2009 at 9:24 PM, MarkAtHarvest
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt; &amp;lt;mark@harvestinfotech.com&amp;gt;wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; My jets3t client is working fine, current I am trying to upgrade it
&lt;br&gt;&amp;gt; to
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; DEV
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; Pay account. I would like to ask if I can get little bit guidance on
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; following
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; I am using Amazon Dev Pay, then so as that an evil administrator is
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; not
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; able
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; to see the S3 files of customers, what exactly do I need to do
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; 1. can be to encrypt all the files stored in S3.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; The problem I see with that approach is,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; *. I cannot use Amazon HTTP Post to directly upload files on S3,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; without
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; going through my server.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; *. I cannot use createSignedGetUrl(), to create signed URLs to
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; expose
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; links for a temporary time, as the files need to be brought to my
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; sever
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; before user can download it.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; Is there a way I can solve the above two problems..
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23735783.html&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23735783.html&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; Sent from the JetS3t Users mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; To unsubscribe, e-mail: users-unsubscribe@jets3t.dev.java.net
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt; For additional commands, e-mail: users-help@jets3t.dev.java.net
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23741804.html&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23741804.html&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Sent from the JetS3t Users mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; To unsubscribe, e-mail: users-unsubscribe@jets3t.dev.java.net
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; For additional commands, e-mail: users-help@jets3t.dev.java.net
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23747665.html&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23747665.html&lt;/a&gt;&lt;br&gt;&amp;gt; Sent from the JetS3t Users mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: users-unsubscribe@jets3t.dev.java.net
&lt;br&gt;&amp;gt; For additional commands, e-mail: users-help@jets3t.dev.java.net
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/JetS3t-Users-f24326.html&quot; embed=&quot;fixTarget[24326]&quot; target=&quot;_top&quot; &gt;JetS3t Users&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23750391.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-23748594</id>
	<title>Re: Questions about security and confidentiality</title>
	<published>2009-05-27T11:49:27Z</published>
	<updated>2009-05-27T11:49:27Z</updated>
	<author>
		<name>Jonathan Harlap</name>
	</author>
	<content type="html">Hi Mark,&lt;br&gt;&lt;br&gt;First off, I&amp;#39;m leaving aside what I think is an obvious issue you&amp;#39;ll need to resolve about the two access methods conflicting (ie, users manipulating the same data via your web app and smb simultaneously).  James already mentioned it and it&amp;#39;s a property of your apparent design not of the AWS services.&lt;br&gt;
&lt;br&gt;What strikes me as particularly interesting your statement that S3 will be mounted in an EC2 instance to provide smb access.  If you&amp;#39;re doing that, couldn&amp;#39;t you just as well put your data in an EBS volume, mount that to your EC2 instance for smb access and *also* have your web app interact with the data which now appears to exist on a local mount point?  Then S3 (as an API) is out of the picture entirely and you have what sounds like a simpler problem to solve.  I put that aside now as well, as it&amp;#39;s more a question of your design than anything S3 specific, which was the purpose of the question, I believe.&lt;br&gt;
&lt;br&gt;S3 signed urls are not related to jets3t, although jets3t does facilitate their creation.  However, I interpret your question to say that you lose the ability to point user&amp;#39;s web browsers directly at a signed url, and this would be correct if you encrypt the data in S3.  If you encrypt the data you store, then you will need to provide a client (whether it be a web app or a thick client) that will perform the encryption/decryption for your clients.&lt;br&gt;
&lt;br&gt;Unfortunately, I don&amp;#39;t think anyone outside your business can really answer the questions you&amp;#39;re posing beyond what has already been said.  We don&amp;#39;t know what your application does.  We can&amp;#39;t tell you whether to encrypt your data and, if so, how, nor how to adapt your app design accordingly.&lt;br&gt;
&lt;br&gt;Good luck with your project.&lt;br&gt;&lt;br&gt;Cheers,&lt;br&gt;Jonathan&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Wed, May 27, 2009 at 1:58 PM, MarkAtHarvest &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23748594&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;mark@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;
&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;&lt;br&gt;
Thanks Jonathan for the interesting links.&lt;br&gt;
&lt;br&gt;
My requirement is very simple, just want to build a application based on S3&lt;br&gt;
where I can store customers data, and give them a guarantee that your data&lt;br&gt;
is safe and secure, while at move and while at rest.&lt;br&gt;
1. My JetS3t Web application will access the data for the customer as well&lt;br&gt;
as&lt;br&gt;
2. S3 will get mounted on EC2 for a SAMBA access.&lt;br&gt;
&lt;br&gt;
Data while at move can be protected with SSL, I am more concerned with data&lt;br&gt;
while at rest, also about accessKey, SecretKey, TokenIDs.&lt;br&gt;
&lt;br&gt;
Questions which arise are&lt;br&gt;
1. Do i need to encrypt the S3 data for such type of situations (If I&lt;br&gt;
encrypt, then i loose the JetS3t features like getSignedUrl, which creates a&lt;br&gt;
link to open the file directly from S3 instead of coming to our servers)&lt;br&gt;
2. what are must must things I need to do.&lt;br&gt;
&lt;br&gt;
Thanks again for your inputs&lt;br&gt;
&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;h5&quot;&gt;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Jonathan Harlap wrote:&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Mark,&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; I suspect one source of confusion for you is the claim of HIPAA&lt;br&gt;
&amp;gt; compliance.&lt;br&gt;
&amp;gt; Firstly, AWS itself is not HIPAA compliant nor does it try to be.  The&lt;br&gt;
&amp;gt; whitepaper in question discusses some of the strategies that might be used&lt;br&gt;
&amp;gt; by AWS customers to build HIPAA compliant systems that run on the AWS&lt;br&gt;
&amp;gt; cloud.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; As to crypto, high security, and so on - I don&amp;#39;t find your need very&lt;br&gt;
&amp;gt; clear,&lt;br&gt;
&amp;gt; so I can&amp;#39;t offer any specific advice other than to say that crypto is a&lt;br&gt;
&amp;gt; very&lt;br&gt;
&amp;gt; tricky thing to do right, and a very easy thing to do wrong, so for your&lt;br&gt;
&amp;gt; clients&amp;#39; sake, do it carefully.  For a fun example of how the little&lt;br&gt;
&amp;gt; details&lt;br&gt;
&amp;gt; make a difference, see&lt;br&gt;
&amp;gt; &lt;a href=&quot;http://www.codinghorror.com/blog/archives/001267.htmland&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://www.codinghorror.com/blog/archives/001267.htmland&lt;/a&gt;&lt;br&gt;
&amp;gt; &lt;a href=&quot;http://www.codinghorror.com/blog/archives/001268.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://www.codinghorror.com/blog/archives/001268.html&lt;/a&gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Cheers,&lt;br&gt;
&amp;gt; J&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; On Wed, May 27, 2009 at 8:47 AM, MarkAtHarvest&lt;br&gt;
&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23748594&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;mark@...&lt;/a&gt;&amp;gt;wrote:&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Thank you for clearing my doubt!&lt;br&gt;
&amp;gt;&amp;gt; But I see white papers saying Amazon AWS is HIPAA compliant, which is a&lt;br&gt;
&amp;gt;&amp;gt; stringent security standard.&lt;br&gt;
&amp;gt;&amp;gt; The confusion I have is&lt;br&gt;
&amp;gt;&amp;gt; 1. I have a webcient build on JetS3 application,soon be adding a DevPay&lt;br&gt;
&amp;gt;&amp;gt; support.&lt;br&gt;
&amp;gt;&amp;gt; 2. I also want to sync S3 files on EC2 using something like Subcloud and&lt;br&gt;
&amp;gt;&amp;gt; provide access to the data&lt;br&gt;
&amp;gt;&amp;gt; on clients windows explorer using SAMBA.&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Now if I do not encrypt, and use ACL to control access on the S3, so that&lt;br&gt;
&amp;gt;&amp;gt; only the respective client has an access to it.&lt;br&gt;
&amp;gt;&amp;gt; Subcloud will not be able to import the data , if it does not have&lt;br&gt;
&amp;gt;&amp;gt; permission, or it will be able to import the data using secret key.&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; As per what you say, I need to keep that secretKey really secret and only&lt;br&gt;
&amp;gt;&amp;gt; one Admin can know it and there should be policies to access that key.&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; So all the S3 products out there in market who use S3, administrator do&lt;br&gt;
&amp;gt;&amp;gt; have&lt;br&gt;
&amp;gt;&amp;gt; a access to data, which might be controlled by some measures. So how can&lt;br&gt;
&amp;gt;&amp;gt; be&lt;br&gt;
&amp;gt;&amp;gt; claim high security compliance&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Thanks for addressing this question, I am not able to get a clean head&lt;br&gt;
&amp;gt;&amp;gt; path&lt;br&gt;
&amp;gt;&amp;gt; on it&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Now is that acceptable in terms of Secu&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; James Murty-3 wrote:&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; The only way to allow clients to store encrypted data in S3 in such a&lt;br&gt;
&amp;gt;&amp;gt; way&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; that administrators cannot read it, is to provide some kind of&lt;br&gt;
&amp;gt;&amp;gt; application&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; the client can run on his/her own machine to do this work.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; If you don&amp;#39;t trust your admins, there is little point encrypting a&lt;br&gt;
&amp;gt;&amp;gt; user&amp;#39;s&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; files on your own server because admins will have simply be able to&lt;br&gt;
&amp;gt;&amp;gt; access&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; to the data there, rather than from S3 directly. Encrypting the data on&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; your&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; server would protect it from the Amazon admins who maintain S3, but not&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; from&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; your own server admins.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; A custom client app would allow your clients to automatically encrypt&lt;br&gt;
&amp;gt;&amp;gt; data&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; prior to uploading, and to decrypt it when downloading. This app could&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; also&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; be designed to interact with your server component to obtain signed&lt;br&gt;
&amp;gt;&amp;gt; URLs&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; to&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; gain access to S3.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; The problem is, such an app doesn&amp;#39;t exist as far as I know. The&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; combination&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; of JetS3t&amp;#39;s CockpitLite and Gatekeeper applications comes close, but&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; CockpitLite does not do any encryption.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; Hope this helps,&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; James&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; ---&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://www.jamesmurty.com&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://www.jamesmurty.com&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; On Tue, May 26, 2009 at 9:24 PM, MarkAtHarvest&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23748594&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;mark@...&lt;/a&gt;&amp;gt;wrote:&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; My jets3t client is working fine, current I am trying to upgrade it to&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; DEV&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; Pay account. I would like to ask if I can get little bit guidance on&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; following&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; I am using Amazon Dev Pay, then so as that an evil administrator is&lt;br&gt;
&amp;gt;&amp;gt; not&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; able&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; to see the S3 files of customers, what exactly do I need to do&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; 1. can be to encrypt all the files stored in S3.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;   The problem I see with that approach is,&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;   *. I cannot use Amazon HTTP Post to directly upload files on S3,&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; without&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; going through my server.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;   *. I cannot use createSignedGetUrl(), to create signed URLs to&lt;br&gt;
&amp;gt;&amp;gt; expose&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; links for a temporary time, as the files need to be brought to my&lt;br&gt;
&amp;gt;&amp;gt; sever&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; before user can download it.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; Is there a way I can solve the above two problems..&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; --&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; View this message in context:&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23735783.html&quot; target=&quot;_blank&quot;&gt;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23735783.html&lt;/a&gt;&lt;br&gt;

&amp;gt;&amp;gt; &amp;gt;&amp;gt; Sent from the JetS3t Users mailing list archive at Nabble.com.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; ---------------------------------------------------------------------&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23748594&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-unsubscribe@...&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23748594&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-help@...&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; --&lt;br&gt;
&amp;gt;&amp;gt; View this message in context:&lt;br&gt;
&amp;gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23741804.html&quot; target=&quot;_blank&quot;&gt;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23741804.html&lt;/a&gt;&lt;br&gt;

&amp;gt;&amp;gt; Sent from the JetS3t Users mailing list archive at Nabble.com.&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; ---------------------------------------------------------------------&lt;br&gt;
&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23748594&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-unsubscribe@...&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23748594&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-help@...&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;font color=&quot;#888888&quot;&gt;--&lt;br&gt;
View this message in context: &lt;a href=&quot;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23747665.html&quot; target=&quot;_blank&quot;&gt;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23747665.html&lt;/a&gt;&lt;br&gt;

&lt;/font&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;h5&quot;&gt;Sent from the JetS3t Users mailing list archive at Nabble.com.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
---------------------------------------------------------------------&lt;br&gt;
To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23748594&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-unsubscribe@...&lt;/a&gt;&lt;br&gt;
For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23748594&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-help@...&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/JetS3t-Users-f24326.html&quot; embed=&quot;fixTarget[24326]&quot; target=&quot;_top&quot; &gt;JetS3t Users&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23748594.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-23747665</id>
	<title>Re: Questions about security and confidentiality</title>
	<published>2009-05-27T10:57:59Z</published>
	<updated>2009-05-27T10:57:59Z</updated>
	<author>
		<name>MarkAtHarvest</name>
	</author>
	<content type="html">Thanks Jonathan for the interesting links.
&lt;br&gt;&lt;br&gt;My requirement is very simple, just want to build a application based on S3 where I can store customers data, and give them a guarantee that your data is safe and secure, while at move and while at rest.
&lt;br&gt;1. My JetS3t Web application will access the data for the customer as well as
&lt;br&gt;2. S3 will get mounted on EC2 for a SAMBA access.
&lt;br&gt;&lt;br&gt;Data while at move can be protected with SSL, I am more concerned with data while at rest, also about accessKey, SecretKey, TokenIDs. 
&lt;br&gt;&lt;br&gt;Questions which arise are
&lt;br&gt;1. Do i need to encrypt the S3 data for such type of situations (If I encrypt, then i loose the JetS3t features like getSignedUrl, which creates a link to open the file directly from S3 instead of coming to our servers)
&lt;br&gt;2. what are must must things I need to do.
&lt;br&gt;&lt;br&gt;Thanks again for your inputs
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;blockquote class=&quot;quote light-black dark-border-color&quot;&gt;&lt;div class=&quot;quote light-border-color&quot;&gt;
&lt;div class=&quot;quote-author&quot; style=&quot;font-weight: bold;&quot;&gt;Jonathan Harlap wrote:&lt;/div&gt;
&lt;div class=&quot;quote-message shrinkable-quote&quot;&gt;Mark,
&lt;br&gt;&lt;br&gt;I suspect one source of confusion for you is the claim of HIPAA compliance.
&lt;br&gt;Firstly, AWS itself is not HIPAA compliant nor does it try to be. &amp;nbsp;The
&lt;br&gt;whitepaper in question discusses some of the strategies that might be used
&lt;br&gt;by AWS customers to build HIPAA compliant systems that run on the AWS cloud.
&lt;br&gt;&lt;br&gt;As to crypto, high security, and so on - I don't find your need very clear,
&lt;br&gt;so I can't offer any specific advice other than to say that crypto is a very
&lt;br&gt;tricky thing to do right, and a very easy thing to do wrong, so for your
&lt;br&gt;clients' sake, do it carefully. &amp;nbsp;For a fun example of how the little details
&lt;br&gt;make a difference, see &lt;a href=&quot;http://www.codinghorror.com/blog/archives/001267.htmland&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.codinghorror.com/blog/archives/001267.htmland&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;http://www.codinghorror.com/blog/archives/001268.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.codinghorror.com/blog/archives/001268.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;Cheers,
&lt;br&gt;J
&lt;br&gt;&lt;br&gt;On Wed, May 27, 2009 at 8:47 AM, MarkAtHarvest &amp;lt;mark@harvestinfotech.com&amp;gt;wrote:
&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thank you for clearing my doubt!
&lt;br&gt;&amp;gt; But I see white papers saying Amazon AWS is HIPAA compliant, which is a
&lt;br&gt;&amp;gt; stringent security standard.
&lt;br&gt;&amp;gt; The confusion I have is
&lt;br&gt;&amp;gt; 1. I have a webcient build on JetS3 application,soon be adding a DevPay
&lt;br&gt;&amp;gt; support.
&lt;br&gt;&amp;gt; 2. I also want to sync S3 files on EC2 using something like Subcloud and
&lt;br&gt;&amp;gt; provide access to the data
&lt;br&gt;&amp;gt; on clients windows explorer using SAMBA.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Now if I do not encrypt, and use ACL to control access on the S3, so that
&lt;br&gt;&amp;gt; only the respective client has an access to it.
&lt;br&gt;&amp;gt; Subcloud will not be able to import the data , if it does not have
&lt;br&gt;&amp;gt; permission, or it will be able to import the data using secret key.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; As per what you say, I need to keep that secretKey really secret and only
&lt;br&gt;&amp;gt; one Admin can know it and there should be policies to access that key.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; So all the S3 products out there in market who use S3, administrator do
&lt;br&gt;&amp;gt; have
&lt;br&gt;&amp;gt; a access to data, which might be controlled by some measures. So how can be
&lt;br&gt;&amp;gt; claim high security compliance
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks for addressing this question, I am not able to get a clean head path
&lt;br&gt;&amp;gt; on it
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Now is that acceptable in terms of Secu
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; James Murty-3 wrote:
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; The only way to allow clients to store encrypted data in S3 in such a way
&lt;br&gt;&amp;gt; &amp;gt; that administrators cannot read it, is to provide some kind of
&lt;br&gt;&amp;gt; application
&lt;br&gt;&amp;gt; &amp;gt; the client can run on his/her own machine to do this work.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; If you don't trust your admins, there is little point encrypting a user's
&lt;br&gt;&amp;gt; &amp;gt; files on your own server because admins will have simply be able to
&lt;br&gt;&amp;gt; access
&lt;br&gt;&amp;gt; &amp;gt; to the data there, rather than from S3 directly. Encrypting the data on
&lt;br&gt;&amp;gt; &amp;gt; your
&lt;br&gt;&amp;gt; &amp;gt; server would protect it from the Amazon admins who maintain S3, but not
&lt;br&gt;&amp;gt; &amp;gt; from
&lt;br&gt;&amp;gt; &amp;gt; your own server admins.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; A custom client app would allow your clients to automatically encrypt
&lt;br&gt;&amp;gt; data
&lt;br&gt;&amp;gt; &amp;gt; prior to uploading, and to decrypt it when downloading. This app could
&lt;br&gt;&amp;gt; &amp;gt; also
&lt;br&gt;&amp;gt; &amp;gt; be designed to interact with your server component to obtain signed URLs
&lt;br&gt;&amp;gt; &amp;gt; to
&lt;br&gt;&amp;gt; &amp;gt; gain access to S3.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; The problem is, such an app doesn't exist as far as I know. The
&lt;br&gt;&amp;gt; &amp;gt; combination
&lt;br&gt;&amp;gt; &amp;gt; of JetS3t's CockpitLite and Gatekeeper applications comes close, but
&lt;br&gt;&amp;gt; &amp;gt; CockpitLite does not do any encryption.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Hope this helps,
&lt;br&gt;&amp;gt; &amp;gt; James
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; ---
&lt;br&gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://www.jamesmurty.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.jamesmurty.com&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; On Tue, May 26, 2009 at 9:24 PM, MarkAtHarvest
&lt;br&gt;&amp;gt; &amp;gt; &amp;lt;mark@harvestinfotech.com&amp;gt;wrote:
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; My jets3t client is working fine, current I am trying to upgrade it to
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; DEV
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Pay account. I would like to ask if I can get little bit guidance on
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; following
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; I am using Amazon Dev Pay, then so as that an evil administrator is not
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; able
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; to see the S3 files of customers, what exactly do I need to do
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; 1. can be to encrypt all the files stored in S3.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; The problem I see with that approach is,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; *. I cannot use Amazon HTTP Post to directly upload files on S3,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; without
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; going through my server.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; *. I cannot use createSignedGetUrl(), to create signed URLs to expose
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; links for a temporary time, as the files need to be brought to my sever
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; before user can download it.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Is there a way I can solve the above two problems..
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23735783.html&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23735783.html&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Sent from the JetS3t Users mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; To unsubscribe, e-mail: users-unsubscribe@jets3t.dev.java.net
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; For additional commands, e-mail: users-help@jets3t.dev.java.net
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; View this message in context:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23741804.html&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23741804.html&lt;/a&gt;&lt;br&gt;&amp;gt; Sent from the JetS3t Users mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: users-unsubscribe@jets3t.dev.java.net
&lt;br&gt;&amp;gt; For additional commands, e-mail: users-help@jets3t.dev.java.net
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/JetS3t-Users-f24326.html&quot; embed=&quot;fixTarget[24326]&quot; target=&quot;_top&quot; &gt;JetS3t Users&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23747665.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-23746097</id>
	<title>Re: Questions about security and confidentiality</title>
	<published>2009-05-27T09:28:32Z</published>
	<updated>2009-05-27T09:28:32Z</updated>
	<author>
		<name>James Murty-3</name>
	</author>
	<content type="html">As John points out, the level of HIPAA compliance you can achieve using Amazon&amp;#39;s services depends very much on how you use the services. You should read Amazon&amp;#39;s whitepaper carefully to understand the recommended techniques.&lt;br&gt;

&lt;br&gt;Obviously, for a service to be useful someone must have access to the data somewhere. In many cases that will mean that admins have access to data. Whether or not this situation meets &amp;quot;high security compliance&amp;quot; depends on the kind of compliance being claimed, and the policies that control the admins access.&lt;br&gt;

&lt;br&gt;If you want to provide a certain level of security for your customers, you need to have a very clear policy of who can access data, when and why. Compliance is simply a measure of whether you keep to the stated policy.&lt;br&gt;

&lt;br&gt;&lt;br&gt;I am not sure what you are trying to achieve using both ACLs and Subcloud. Do your clients have direct access to their data in S3? If not, then there is no need for ACL controls as the Subcloud server should be the only entity accessing the storage. If your clients do have direct access to S3, I&amp;#39;m not sure how well this will work with Subcloud because multiple access points will be &amp;quot;fighting&amp;quot; over shared storage space. You will need to talk this through with the Subcloud vendor.&lt;br&gt;

&lt;br&gt;James&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Wed, May 27, 2009 at 6:17 AM, Jon Harlap &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23746097&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jharlap@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;

Mark,&lt;br&gt;&lt;br&gt;I suspect one source of confusion for you is the claim of HIPAA compliance.  Firstly, AWS itself is not HIPAA compliant nor does it try to be.  The whitepaper in question discusses some of the strategies that might be used by AWS customers to build HIPAA compliant systems that run on the AWS cloud.&lt;br&gt;


&lt;br&gt;As to crypto, high security, and so on - I don&amp;#39;t find your need very clear, so I can&amp;#39;t offer any specific advice other than to say that crypto is a very tricky thing to do right, and a very easy thing to do wrong, so for your clients&amp;#39; sake, do it carefully.  For a fun example of how the little details make a difference, see &lt;a href=&quot;http://www.codinghorror.com/blog/archives/001267.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://www.codinghorror.com/blog/archives/001267.html&lt;/a&gt; and &lt;a href=&quot;http://www.codinghorror.com/blog/archives/001268.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://www.codinghorror.com/blog/archives/001268.html&lt;/a&gt;&lt;br&gt;


&lt;br&gt;Cheers,&lt;br&gt;&lt;font color=&quot;#888888&quot;&gt;J&lt;/font&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;h5&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Wed, May 27, 2009 at 8:47 AM, MarkAtHarvest &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23746097&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;mark@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;

&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
&lt;br&gt;
Thank you for clearing my doubt!&lt;br&gt;
But I see white papers saying Amazon AWS is HIPAA compliant, which is a&lt;br&gt;
stringent security standard.&lt;br&gt;
The confusion I have is&lt;br&gt;
1. I have a webcient build on JetS3 application,soon be adding a DevPay&lt;br&gt;
support.&lt;br&gt;
2. I also want to sync S3 files on EC2 using something like Subcloud and&lt;br&gt;
provide access to the data&lt;br&gt;
on clients windows explorer using SAMBA.&lt;br&gt;
&lt;br&gt;
Now if I do not encrypt, and use ACL to control access on the S3, so that&lt;br&gt;
only the respective client has an access to it.&lt;br&gt;
Subcloud will not be able to import the data , if it does not have&lt;br&gt;
permission, or it will be able to import the data using secret key.&lt;br&gt;
&lt;br&gt;
As per what you say, I need to keep that secretKey really secret and only&lt;br&gt;
one Admin can know it and there should be policies to access that key.&lt;br&gt;
&lt;br&gt;
So all the S3 products out there in market who use S3, administrator do have&lt;br&gt;
a access to data, which might be controlled by some measures. So how can be&lt;br&gt;
claim high security compliance&lt;br&gt;
&lt;br&gt;
Thanks for addressing this question, I am not able to get a clean head path&lt;br&gt;
on it&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Now is that acceptable in terms of Secu&lt;br&gt;
&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
James Murty-3 wrote:&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; The only way to allow clients to store encrypted data in S3 in such a way&lt;br&gt;
&amp;gt; that administrators cannot read it, is to provide some kind of application&lt;br&gt;
&amp;gt; the client can run on his/her own machine to do this work.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; If you don&amp;#39;t trust your admins, there is little point encrypting a user&amp;#39;s&lt;br&gt;
&amp;gt; files on your own server because admins will have simply be able to access&lt;br&gt;
&amp;gt; to the data there, rather than from S3 directly. Encrypting the data on&lt;br&gt;
&amp;gt; your&lt;br&gt;
&amp;gt; server would protect it from the Amazon admins who maintain S3, but not&lt;br&gt;
&amp;gt; from&lt;br&gt;
&amp;gt; your own server admins.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; A custom client app would allow your clients to automatically encrypt data&lt;br&gt;
&amp;gt; prior to uploading, and to decrypt it when downloading. This app could&lt;br&gt;
&amp;gt; also&lt;br&gt;
&amp;gt; be designed to interact with your server component to obtain signed URLs&lt;br&gt;
&amp;gt; to&lt;br&gt;
&amp;gt; gain access to S3.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; The problem is, such an app doesn&amp;#39;t exist as far as I know. The&lt;br&gt;
&amp;gt; combination&lt;br&gt;
&amp;gt; of JetS3t&amp;#39;s CockpitLite and Gatekeeper applications comes close, but&lt;br&gt;
&amp;gt; CockpitLite does not do any encryption.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Hope this helps,&lt;br&gt;
&amp;gt; James&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; ---&lt;br&gt;
&amp;gt; &lt;a href=&quot;http://www.jamesmurty.com&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://www.jamesmurty.com&lt;/a&gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; On Tue, May 26, 2009 at 9:24 PM, MarkAtHarvest&lt;br&gt;
&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23746097&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;mark@...&lt;/a&gt;&amp;gt;wrote:&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; My jets3t client is working fine, current I am trying to upgrade it to&lt;br&gt;
&amp;gt;&amp;gt; DEV&lt;br&gt;
&amp;gt;&amp;gt; Pay account. I would like to ask if I can get little bit guidance on&lt;br&gt;
&amp;gt;&amp;gt; following&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; I am using Amazon Dev Pay, then so as that an evil administrator is not&lt;br&gt;
&amp;gt;&amp;gt; able&lt;br&gt;
&amp;gt;&amp;gt; to see the S3 files of customers, what exactly do I need to do&lt;br&gt;
&amp;gt;&amp;gt; 1. can be to encrypt all the files stored in S3.&lt;br&gt;
&amp;gt;&amp;gt;   The problem I see with that approach is,&lt;br&gt;
&amp;gt;&amp;gt;   *. I cannot use Amazon HTTP Post to directly upload files on S3,&lt;br&gt;
&amp;gt;&amp;gt; without&lt;br&gt;
&amp;gt;&amp;gt; going through my server.&lt;br&gt;
&amp;gt;&amp;gt;   *. I cannot use createSignedGetUrl(), to create signed URLs to expose&lt;br&gt;
&amp;gt;&amp;gt; links for a temporary time, as the files need to be brought to my sever&lt;br&gt;
&amp;gt;&amp;gt; before user can download it.&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Is there a way I can solve the above two problems..&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; --&lt;br&gt;
&amp;gt;&amp;gt; View this message in context:&lt;br&gt;
&amp;gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23735783.html&quot; target=&quot;_blank&quot;&gt;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23735783.html&lt;/a&gt;&lt;br&gt;



&amp;gt;&amp;gt; Sent from the JetS3t Users mailing list archive at Nabble.com.&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; ---------------------------------------------------------------------&lt;br&gt;
&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23746097&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-unsubscribe@...&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23746097&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-help@...&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;font color=&quot;#888888&quot;&gt;--&lt;br&gt;
View this message in context: &lt;a href=&quot;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23741804.html&quot; target=&quot;_blank&quot;&gt;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23741804.html&lt;/a&gt;&lt;br&gt;



&lt;/font&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Sent from the JetS3t Users mailing list archive at Nabble.com.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
---------------------------------------------------------------------&lt;br&gt;
To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23746097&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-unsubscribe@...&lt;/a&gt;&lt;br&gt;
For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23746097&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-help@...&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/JetS3t-Users-f24326.html&quot; embed=&quot;fixTarget[24326]&quot; target=&quot;_top&quot; &gt;JetS3t Users&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23746097.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-23742358</id>
	<title>Re: Questions about security and confidentiality</title>
	<published>2009-05-27T06:17:27Z</published>
	<updated>2009-05-27T06:17:27Z</updated>
	<author>
		<name>Jonathan Harlap</name>
	</author>
	<content type="html">Mark,&lt;br&gt;&lt;br&gt;I suspect one source of confusion for you is the claim of HIPAA compliance.  Firstly, AWS itself is not HIPAA compliant nor does it try to be.  The whitepaper in question discusses some of the strategies that might be used by AWS customers to build HIPAA compliant systems that run on the AWS cloud.&lt;br&gt;
&lt;br&gt;As to crypto, high security, and so on - I don&amp;#39;t find your need very clear, so I can&amp;#39;t offer any specific advice other than to say that crypto is a very tricky thing to do right, and a very easy thing to do wrong, so for your clients&amp;#39; sake, do it carefully.  For a fun example of how the little details make a difference, see &lt;a href=&quot;http://www.codinghorror.com/blog/archives/001267.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.codinghorror.com/blog/archives/001267.html&lt;/a&gt; and &lt;a href=&quot;http://www.codinghorror.com/blog/archives/001268.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.codinghorror.com/blog/archives/001268.html&lt;/a&gt;&lt;br&gt;
&lt;br&gt;Cheers,&lt;br&gt;J&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Wed, May 27, 2009 at 8:47 AM, MarkAtHarvest &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23742358&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;mark@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
&lt;br&gt;
Thank you for clearing my doubt!&lt;br&gt;
But I see white papers saying Amazon AWS is HIPAA compliant, which is a&lt;br&gt;
stringent security standard.&lt;br&gt;
The confusion I have is&lt;br&gt;
1. I have a webcient build on JetS3 application,soon be adding a DevPay&lt;br&gt;
support.&lt;br&gt;
2. I also want to sync S3 files on EC2 using something like Subcloud and&lt;br&gt;
provide access to the data&lt;br&gt;
on clients windows explorer using SAMBA.&lt;br&gt;
&lt;br&gt;
Now if I do not encrypt, and use ACL to control access on the S3, so that&lt;br&gt;
only the respective client has an access to it.&lt;br&gt;
Subcloud will not be able to import the data , if it does not have&lt;br&gt;
permission, or it will be able to import the data using secret key.&lt;br&gt;
&lt;br&gt;
As per what you say, I need to keep that secretKey really secret and only&lt;br&gt;
one Admin can know it and there should be policies to access that key.&lt;br&gt;
&lt;br&gt;
So all the S3 products out there in market who use S3, administrator do have&lt;br&gt;
a access to data, which might be controlled by some measures. So how can be&lt;br&gt;
claim high security compliance&lt;br&gt;
&lt;br&gt;
Thanks for addressing this question, I am not able to get a clean head path&lt;br&gt;
on it&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Now is that acceptable in terms of Secu&lt;br&gt;
&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;h5&quot;&gt;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
James Murty-3 wrote:&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; The only way to allow clients to store encrypted data in S3 in such a way&lt;br&gt;
&amp;gt; that administrators cannot read it, is to provide some kind of application&lt;br&gt;
&amp;gt; the client can run on his/her own machine to do this work.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; If you don&amp;#39;t trust your admins, there is little point encrypting a user&amp;#39;s&lt;br&gt;
&amp;gt; files on your own server because admins will have simply be able to access&lt;br&gt;
&amp;gt; to the data there, rather than from S3 directly. Encrypting the data on&lt;br&gt;
&amp;gt; your&lt;br&gt;
&amp;gt; server would protect it from the Amazon admins who maintain S3, but not&lt;br&gt;
&amp;gt; from&lt;br&gt;
&amp;gt; your own server admins.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; A custom client app would allow your clients to automatically encrypt data&lt;br&gt;
&amp;gt; prior to uploading, and to decrypt it when downloading. This app could&lt;br&gt;
&amp;gt; also&lt;br&gt;
&amp;gt; be designed to interact with your server component to obtain signed URLs&lt;br&gt;
&amp;gt; to&lt;br&gt;
&amp;gt; gain access to S3.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; The problem is, such an app doesn&amp;#39;t exist as far as I know. The&lt;br&gt;
&amp;gt; combination&lt;br&gt;
&amp;gt; of JetS3t&amp;#39;s CockpitLite and Gatekeeper applications comes close, but&lt;br&gt;
&amp;gt; CockpitLite does not do any encryption.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Hope this helps,&lt;br&gt;
&amp;gt; James&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; ---&lt;br&gt;
&amp;gt; &lt;a href=&quot;http://www.jamesmurty.com&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://www.jamesmurty.com&lt;/a&gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; On Tue, May 26, 2009 at 9:24 PM, MarkAtHarvest&lt;br&gt;
&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23742358&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;mark@...&lt;/a&gt;&amp;gt;wrote:&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; My jets3t client is working fine, current I am trying to upgrade it to&lt;br&gt;
&amp;gt;&amp;gt; DEV&lt;br&gt;
&amp;gt;&amp;gt; Pay account. I would like to ask if I can get little bit guidance on&lt;br&gt;
&amp;gt;&amp;gt; following&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; I am using Amazon Dev Pay, then so as that an evil administrator is not&lt;br&gt;
&amp;gt;&amp;gt; able&lt;br&gt;
&amp;gt;&amp;gt; to see the S3 files of customers, what exactly do I need to do&lt;br&gt;
&amp;gt;&amp;gt; 1. can be to encrypt all the files stored in S3.&lt;br&gt;
&amp;gt;&amp;gt;   The problem I see with that approach is,&lt;br&gt;
&amp;gt;&amp;gt;   *. I cannot use Amazon HTTP Post to directly upload files on S3,&lt;br&gt;
&amp;gt;&amp;gt; without&lt;br&gt;
&amp;gt;&amp;gt; going through my server.&lt;br&gt;
&amp;gt;&amp;gt;   *. I cannot use createSignedGetUrl(), to create signed URLs to expose&lt;br&gt;
&amp;gt;&amp;gt; links for a temporary time, as the files need to be brought to my sever&lt;br&gt;
&amp;gt;&amp;gt; before user can download it.&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Is there a way I can solve the above two problems..&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; --&lt;br&gt;
&amp;gt;&amp;gt; View this message in context:&lt;br&gt;
&amp;gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23735783.html&quot; target=&quot;_blank&quot;&gt;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23735783.html&lt;/a&gt;&lt;br&gt;

&amp;gt;&amp;gt; Sent from the JetS3t Users mailing list archive at Nabble.com.&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; ---------------------------------------------------------------------&lt;br&gt;
&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23742358&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-unsubscribe@...&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23742358&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-help@...&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;font color=&quot;#888888&quot;&gt;--&lt;br&gt;
View this message in context: &lt;a href=&quot;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23741804.html&quot; target=&quot;_blank&quot;&gt;http://www.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23741804.html&lt;/a&gt;&lt;br&gt;

&lt;/font&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;h5&quot;&gt;Sent from the JetS3t Users mailing list archive at Nabble.com.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
---------------------------------------------------------------------&lt;br&gt;
To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23742358&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-unsubscribe@...&lt;/a&gt;&lt;br&gt;
For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23742358&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;users-help@...&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/JetS3t-Users-f24326.html&quot; embed=&quot;fixTarget[24326]&quot; target=&quot;_top&quot; &gt;JetS3t Users&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Questions-about-security-and-confidentiality-tp23735783p23742358.html" />
</entry>

</feed>
