<div dir="ltr"><br><div>Hi Frank, I have to say ownCloud is really nicely done.  i have been in need of a file share which has native linux client support and a really robust storage backend.  ownCloud with swift meets the requirements.  I do have a comment which mirrors Hugo's comments I think.  Is it feasible to have the concept of users in ownCloud more closely match up with swift's concept?  It would be nice if the backend storage for each user was stored in that user's swift account.  I'm sure it will add complexity to user management and authentication but the advantages of separation of user data may offset that.</div>
<div><br></div><div>I did some testing on ubuntu trusty against an ubuntu trusty icehouse openstack.  I updated the config file and didn't get it quite right the first time.  The error in the admin gui told me what the problem was (I had wrong string in for the region attribute) so that worked nice.</div>
<div><br></div><div>I stood up an instance of trusty and installed the owncloud client and copied some files into the shared directory.</div><div><br></div><div>a 2gb file worked fine.  when i tried a 7gb file I got this error message, so I think the code in ownCloud does not handle > 5GB files in swift.  It also looks like it keeps retrying the upload over and over.  i'll watch it to see if it eventually gives up and errors out.</div>
<div><br></div><div><div>Fatal <span class="" style="white-space:pre">  </span>webdav <span class="" style="white-space:pre">   </span>Exception: #9 {main} <span class="" style="white-space:pre">     </span>2014-07-12T16:11:43+00:00</div>
<div>Fatal <span class="" style="white-space:pre">      </span>webdav <span class="" style="white-space:pre">   </span>Exception: #8 /var/www/html/owncloud/remote.php(52): require_once('/var/www/html/o...') <span class="" style="white-space:pre">  </span>2014-07-12T16:11:43+00:00</div>
<div>Fatal <span class="" style="white-space:pre">      </span>webdav <span class="" style="white-space:pre">   </span>Exception: #7 /var/www/html/owncloud/apps/files/appinfo/remote.php(61): Sabre\DAV\Server->exec() <span class="" style="white-space:pre">      </span>2014-07-12T16:11:43+00:00</div>
<div>Fatal<span class="" style="white-space:pre">       </span>webdav<span class="" style="white-space:pre">    </span>Exception: #6 /var/www/html/owncloud/3rdparty/sabre/dav/lib/Sabre/DAV/Server.php(214): Sabre\DAV\Server->invokeMethod('PUT', '7gigafile-chunk...')<span class="" style="white-space:pre">     </span>2014-07-12T16:11:43+00:00</div>
<div>Fatal<span class="" style="white-space:pre">       </span>webdav<span class="" style="white-space:pre">    </span>Exception: #5 /var/www/html/owncloud/3rdparty/sabre/dav/lib/Sabre/DAV/Server.php(474): call_user_func(Array, '7gigafile-chunk...')<span class="" style="white-space:pre">        </span>2014-07-12T16:11:43+00:00</div>
<div>Fatal<span class="" style="white-space:pre">       </span>webdav<span class="" style="white-space:pre">    </span>Exception: #4 [internal function]: Sabre\DAV\Server->httpPut('7gigafile-chunk...')<span class="" style="white-space:pre">     </span>2014-07-12T16:11:43+00:00</div>
<div>Fatal<span class="" style="white-space:pre">       </span>webdav<span class="" style="white-space:pre">    </span>Exception: #3 /var/www/html/owncloud/3rdparty/sabre/dav/lib/Sabre/DAV/Server.php(900): Sabre\DAV\Server->createFile('7gigafile-chunk...', Resource id #17, NULL)<span class="" style="white-space:pre">       </span>2014-07-12T16:11:43+00:00</div>
<div>Fatal<span class="" style="white-space:pre">       </span>webdav<span class="" style="white-space:pre">    </span>Exception: #2 /var/www/html/owncloud/3rdparty/sabre/dav/lib/Sabre/DAV/Server.php(1647): OC_Connector_Sabre_Directory->createFile('7gigafile-chunk...', Resource id #17)<span class="" style="white-space:pre">        </span>2014-07-12T16:11:43+00:00</div>
<div>Fatal<span class="" style="white-space:pre">       </span>webdav<span class="" style="white-space:pre">    </span>Exception: #1 /var/www/html/owncloud/lib/private/connector/sabre/directory.php(76): OC_Connector_Sabre_File->put(Resource id #17)<span class="" style="white-space:pre">      </span>2014-07-12T16:11:43+00:00</div>
<div>Fatal<span class="" style="white-space:pre">       </span>webdav<span class="" style="white-space:pre">    </span>Sabre\DAV\Exception: Could not rename part file assembled from chunks<span class="" style="white-space:pre">     </span>2014-07-12T16:11:43+00:00</div>
<div>Error<span class="" style="white-space:pre">       </span>webdav<span class="" style="white-space:pre">    </span>\OC\Files\Filesystem::rename() failed<span class="" style="white-space:pre">     </span>2014-07-12T16:11:43+00:00</div>
<div>Error<span class="" style="white-space:pre">       </span>objectstore<span class="" style="white-space:pre">       </span>Could not create object: Client error response [status code] 413 [reason phrase] Request Entity Too Large [url] <a href="http://openstack-swiftproxy.stanford.edu:8080/v1/AUTH_78043e536430433fae0318b0ac1040ff/owncloud2/urn:oid:1163">http://openstack-swiftproxy.stanford.edu:8080/v1/AUTH_78043e536430433fae0318b0ac1040ff/owncloud2/urn:oid:1163</a></div>
</div><div><br></div><div>I will continue testing and let you know if I find anything else.  I am still using just http connection for keystone and swift services.  I will pull proper https certificates and check ssl plumbing is working fine.</div>
<div><br></div><div>After that my next steps will probably be authentication and LDAP related.</div><div><br></div><div>Jason</div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Jul 7, 2014 at 9:09 AM, Frank Karlitschek <span dir="ltr"><<a href="mailto:frank@owncloud.com" target="_blank">frank@owncloud.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Hugo,<br>
<br>
<br>
thanks a lot for the recommendations. This is super helpful.<br>
We will look into the upload problem you found.<br>
<br>
<br>
Cheers<br>
<span class="HOEnZb"><font color="#888888">Frank<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
> On 07.07.2014, at 05:09, Kuo Hugo <<a href="mailto:tonytkdk@gmail.com">tonytkdk@gmail.com</a>> wrote:<br>
><br>
> Hi Frank,<br>
><br>
> I had a try with it on my box here. Most of OwnCloud's features are done by OwnCloud host. Not too much functions rely on Swift's feature. It simply uses CRUD methods.<br>
><br>
> [Suggestions]<br>
>       • Multiple containers/accounts for Swift as primary storage. The performance will degrade while over 1million within a container.<br>
>       • Since all metadata is stored in the DB on OwnCloud host. And OwnCloud remaps the filename as object_id in Swift. That would be good to store some mapping metadata in Swift for safety. If the DB crashed, no chance to get the proper data from Swift. User has no knowledge about object name "urn:oid:153".<br>

>       • For large object(100MB+), OwnCloud chunks it into pieces and upload each segment to Swift as single object. Swift provide two methods for handling large object DLO/SLO. It might be good to leverage it for reduce some loading on OwnCloud. And more consistency of how large object been stored in Swift.<br>

>       • Data traffic passthrough the OwnCloud server will cause the bottleneck/loading on OwnCloud host. To upload data to Swift API from client app directly may bring you some benefits.<br>
>       • OwnCloud can have the shared link from Swift directly via TempURL feature.<br>
>       • The Object expired feature of Swift is a plus for OwnCloud to use.<br>
>       • Pre-create folders for user in objectstore as primary storage mode.<br>
>       • When downloading file, seems OwnCloud will cache it somewhere. Once the entire object were loaded into OwnCloud then sending to user. To streaming it is an ideally way to do so from my perspective.<br>
><br>
> Renaming is easy on OwnCloud by overwriting the value in DB.<br>
> Thumbnail is good idea.<br>
> To edit txt file on Web is awesome.<br>
><br>
> I got a problem to upload a 470MB object from OSX client app. It just showed me timeout but no any further clues here.<br>
><br>
> Cheers // Hugo<br>
><br>
><br>
><br>
><br>
> 2014-07-04 10:31 GMT+08:00 John Dickinson <<a href="mailto:me@not.mn">me@not.mn</a>>:<br>
> That's fantastic news! Hearing more companies and applications supporting Swift is great for the community, and it gives us as contributors yet another use case to reference.<br>
><br>
> I work with Hugo, so I'll peek over his shoulder to check it out. Meanwhile, if there's anything I can do to help answer questions or get involved in the community (from contributing to getting issues addressed), please let me know.<br>

><br>
> --John<br>
><br>
><br>
> > On Jul 3, 2014, at 6:01 PM, Frank Karlitschek <<a href="mailto:frank@owncloud.com">frank@owncloud.com</a>> wrote:<br>
> ><br>
> > Hi everyone,<br>
> ><br>
> ><br>
> > Tom Fifield recommended that I send a message to this list.<br>
> ><br>
> > As some of you might know we at ownCloud just added Swift support as primary storage to ownCloud. This will be released as part of our upcoming release 7 in about 3 weeks.<br>
> ><br>
> > The code can be seen here.<br>
> > <a href="https://github.com/owncloud/core/pull/8383" target="_blank">https://github.com/owncloud/core/pull/8383</a><br>
> ><br>
> ><br>
> > ownCloud is a fully open source solution that can be used a self hosted Dropbox or Google Drive alternative. The new Swift backend is an important step for us to mask ownCloud more scalable, easier to deploy in bigger setups and integrate it better into OpenStack.<br>

> ><br>
> > Tom suggested to ask here for testers who are willing to try ownCloud 7 together with Swift.<br>
> > We just announced the RC1 a few minutes ago:<br>
> > <a href="http://mailman.owncloud.org/pipermail/announcements/2014-July/000049.html" target="_blank">http://mailman.owncloud.org/pipermail/announcements/2014-July/000049.html</a><br>
> ><br>
> ><br>
> > So it would be great if you guys could give it a test and give some feedback.<br>
> ><br>
> ><br>
> > Thanks a lot<br>
> ><br>
> ><br>
> > Cheers<br>
> > Frank<br>
> > _______________________________________________<br>
> > Mailing list: <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack</a><br>
> > Post to     : <a href="mailto:openstack@lists.openstack.org">openstack@lists.openstack.org</a><br>
> > Unsubscribe : <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack</a><br>
><br>
> _______________________________________________<br>
> Mailing list: <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack</a><br>
> Post to     : <a href="mailto:openstack@lists.openstack.org">openstack@lists.openstack.org</a><br>
> Unsubscribe : <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack</a><br>
><br>
<br>
<br>
_______________________________________________<br>
Mailing list: <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack</a><br>
Post to     : <a href="mailto:openstack@lists.openstack.org">openstack@lists.openstack.org</a><br>
Unsubscribe : <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack</a><br>
</div></div></blockquote></div><br></div>