onroerenderfgoed / augeias Goto Github PK
View Code? Open in Web Editor NEWAugeias. Stores your shit.
Home Page: http://augeias.readthedocs.org/
License: GNU General Public License v3.0
Augeias. Stores your shit.
Home Page: http://augeias.readthedocs.org/
License: GNU General Public License v3.0
Might be interesting to have a script that moves files from one type of storage to another.
Make a security model similar to the one in Atramhasis. Simple and configurable. The development environment by default has no security.
Create a route along the lines:
config.add_route('get_container', pattern='/collections/{collection_key}/containers/{container_key}',request_method="GET", accept='application/zip')
Which creates and returns a zip file containing the entire collection on the fly. Possibly use shutil for this: https://docs.python.org/2/library/shutil.html#archiving-operations.
Indien van toepassing, anders sluiten. Wel zorgen dat Pyramid versie >= 1.5.
Indien hier van toepassing, dus feed aanwezig in project. Anders mag deze direct dicht. Zie https://github.com/OnroerendErfgoed/premieaanvragen/issues/297 voor wat meer achtergrond. De fix die Bart daar heeft toegepast werkt voor alle versies van feedgen dus gewoon overnemen.
Currently, you always need to download an object to find out more about it. To make it possible to save some bandwith, we will implement the HEAD method for objects.
Aangemaakt in bulk, indien al ok of nvt gewoon sluiten.
While retrieving an object from a pair tree file system store, it is possible to get an unexpected error with status code 200.
This is an unclear error message with the wrong status code.
Containers, Collections and objects have URI's.
Going to go with the possiblity to configure different generators per collection. But there's no reason different collections couldn't have different uris (eg. https://id.erfgoed.net/augeias/paardenstal and https://things.erfgoed.net/horses).
A generator is an object with three methods: generate_collection_uri, generate_container_uri and generate_object_uri. The actual generation could be done by something like the skosprovider.uri generators (http://skosprovider.readthedocs.org/en/latest/api.html#module-skosprovider.uri).
We should provide a default generator that just generates the actual url's where our objects are living (eg. https://storage.onroerenderfgoed.be/collections/horses, https://storage.onroerenderfgoed.be/collections/horses/containers/pegasus and https://storage.onroerenderfgoed.be/collections/horses/containers/pegasus/1914).
Looks like PairTree is only available for python 2.7. And not the best maintained library out there. This means that python3 compatibility will be hard to achieve.
Either we need to fork PairTree and fix it ourselves or not ship it as the default environment?
See #9 . Currently, the server fetches the entire object, generates metadata and then throws away the object. Saves some bandwith between the client and Augeias, but can probably be made more efficient between Augeias and the store.
Zie https://github.com/OnroerendErfgoed/dossierdata/issues/248. Voor sommige gebruikersprofielen zitten we aan de 4K cookie limiet. Deze personen kunnen momenteel niet meer inloggen.
Indien van toepassing. In de requirements wsgicors dependency verwijderen en toevoegen wsgicoers==0.8.2. In prodcution.ini use = egg:wsgicors#middleware
vervangen door use = egg:wsgicoers#middleware
.
This store takes a uri_base. From looking at the PairTree code, it doesn't do a lot. Seems more of a reminder where the files are served on the web.
In our current implementation, the default value for this is urn:x-vioe:
, which doesn't seem to be what the PairTree code was expecting. But it seems to be working.
From looking at the code, it seems like the uri_base
should be the web adress where the collection this store is working for can be found.
release Augeias naar 0.4.0
Make a scaffold to get stared quickly.
Currently Travis tests are run against 2.7 and 3.5. Setup.py only mentions 2.7. Have to check tox as well. I think we're still targetting 2.7, 3.5, 3.6 and 3.7 here.
Concerning use of mimetype:
Mimetype can now be served to the client using the function
get_object_info
that must be provided by the stores.
content_type = collection.object_store.get_object_info(container_key, object_key)['mime']
In case of the
PairTreeFileSystemStore
, the
magic.from_buffer(open(file_path).read(1048576), mime=True)
cannot guess Microsoft mimetypes. This can be solved by adding configuration to the/etc/magic
file as described in following link
https://serverfault.com/questions/338087/making-libmagic-file-detect-docx-files/377792#377792
Is it possible to implement a way to get the content-length of a file without first downloading the whole file. Currently we tried to get the content-length by using requests.head but it seems this returns 0 in our setup. (nginx+gunicorn)
Shouldn't this config be removed? This is part of our custom implementation.
Make it possible to pass the (augeias) location of the file in the request to the copy_object
view.
In this case, the file will be copied from one (augeias) location to another.
Zie https://github.com/OnroerendErfgoed/dossierdata/issues/300 voor de volledige discussie.
Aangezien we het rq-dashboard kunnen raadplegen in de monitaurus mogen alle verwijzingen naar rq-dashboard uit de toepassingen gehaald worden. Dus indien van toepassing moet de view verwijderd worden en rq-dashboard uit de requirements gehaald worden.
Naar aanleiding van OnroerendErfgoed/crabpy#172, updaten naar laatste versie.
Would be nice to allow a client some more options in caching by:
Naar aanleiding van Pylons/pyramid_tm#67
https://github.com/OnroerendErfgoed/premieaanvragen/issues/359
Line 138 in 2a591a8
De bedoeling is dat er extra query parameters worden meegestuurd: ?id1=naam&id2=naam,... bvb. ?001=kostenraming.pdf&002=bestek.pdf&...
Voor zippen moet dan de vertaling worden gemaakt tussen id en bestandsnaam.
Indien geen parameters aanwezig of de parameter voor een bepaalde id ontbreekt gewoon werken zoals vroeger.
Indien van toepassing, anders sluiten. Zorgt ervoor dat na afmelden van werkrelatie veranderd kan worden.
Voorlopig staat pairtree nog op commit van https://github.com/benosteen/pairtree
We zouden die van pypi moeten halen, maar er zijn issues met de pypi package. Zie: benosteen/pairtree#4
Implement Byte serving and/or Chunked Transfer-Encoding for objects.
Currently, Augeias has no idea of the mime-type of the files it's storing. Whenever we serve something to the client, it's served as Content-Type:application/octet-stream
. So, another application has to track what kind of files it has been storing in Augeias.
Seems like it would be better for Augeias to have some knowledge of that.
naar versie 0.7.0, na OnroerendErfgoed/pyoes#125
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.