<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>On Jun 15, 2011, at 7:24 PM, Shai Ben-Naphtali wrote:</div><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div>The problem is, that from what I understand, Object Store API doesn't work with boto. And since my script today uses boto, I need to be able to do minimal changes to it, in order to make it work for me if I decide to work with OpenStack. So the question, is there any other way </div><div>(workaround) to make the Object Store API with boto since it isn't yet </div><div>supported?</div><div>I'm sure someone else had this same concern and I look forward to your response.</div></span></blockquote></div><div><br></div><div>Annyeong-haseyo Shai:</div><div><br></div><div>Didn't realize that you were talking about S3 compatibility as well as EC2 compatibility :)</div><div><br></div><div>AFAIK, The object store (OpenStack Swift) supports the OpenStack API natively (which boto does not support) but also supports the much of the S3 protocol (which boto does support) via WSGI middleware options. From the trunk/swift/common/middleware/swift3.py file:</div><div><br></div><div><div></div></div><blockquote type="cite"><div><div>The swift3 middleware will emulate the S3 REST api on top of swift.</div><div>The following opperations are currently supported:</div><div><br></div><div>    * GET Service</div><div>    * DELETE Bucket</div><div>    * GET Bucket (List Objects)</div><div>    * PUT Bucket</div><div>    * DELETE Object</div><div>    * GET Object</div><div>    * HEAD Object</div><div>    * PUT Object</div><div>    * PUT Object (Copy)</div><div><br></div><div>To add this middleware to your configuration, add the swift3 middleware</div><div>in front of the auth middleware, and before any other middleware that</div><div>look at swift requests (like rate limiting).</div></div></blockquote><div><br></div><div>You'll need to include the Swift3 middleware into your WSGI pipeline (it's a configuration option in the /etc/proxy-server.conf file). </div><div><br></div><div>cheers</div><div>/k</div><br><div>
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><span class="Apple-style-span" style="font-family: Arial; font-size: 12px; "><div><font class="Apple-style-span" color="#929292"><font class="Apple-style-span" size="4"><span class="Apple-style-span" style="font-size: 14px; ">---</span></font></font></div><div><font class="Apple-style-span" color="#929292"><font class="Apple-style-span" size="4"><span class="Apple-style-span" style="font-size: 14px; "><b>Ken Pepple</b></span></font></font></div><div style="font-size: 11px; "><font class="Apple-style-span" color="#929292"><font class="Apple-style-span" size="4" style="font-size: 16px; "><span class="Apple-style-span" style="font-size: 13px; "><a href="mailto:ken.pepple@gmail.com">ken.pepple@gmail.com</a></span></font></font></div><div style="font-size: 11px; "><font class="Apple-style-span" color="#929292"><font class="Apple-style-span" size="4" style="font-size: 16px; "><span class="Apple-style-span" style="font-size: 13px; "><a href="http://ken.pepple.info/">http://ken.pepple.info/</a></span></font></font></div><div style="font-size: 11px; "><font class="Apple-style-span" color="#929292"><font class="Apple-style-span" size="4" style="font-size: 16px; "><span class="Apple-style-span" style="font-size: 13px; ">@ken_pepple</span></font></font></div><div style="font-size: 11px; "><font class="Apple-style-span" color="#929292" size="3"><span class="Apple-style-span" style="font-size: 13px;"><br></span></font></div></span></div></div></div></div></span></div></span></div></span></div></span></div></span></div></div></div></body></html>