[ckan-dev] Creating resource with upload from an extension
lucia.espona at wsl.ch
lucia.espona at wsl.ch
Fri Apr 29 11:49:09 UTC 2016
Hi
I am using CKAN version 2.5.2 and the URL is still required by the FileStore API when creating a new resource.
It fails both ommiting the 'url' entry in the input data dictionary as well as setting it to None
Instead a random string I preferred to use an empty one, it doesn't matter since it gets replaced by CKAN.
Anyway, I guess this won't be necessary for later versions.
Cheers,
Lucia
_________________________________________________________
Dr. Lucia Espona Pernas
Swiss Federal Institute for Forest, Snow and Landscape Research WSL
Hauptgebäaude Labortrakt (HL D34)
Zürcherstrasse 111
8903 Birmensdorf
Switzerland
+41 44 739 28 71 phone direct
+41 44 739 21 11 reception
www.wsl.ch
-----"ckan-dev" <ckan-dev-bounces at lists.okfn.org> wrote: -----
To: Pedro G Silva <pedro.gracio at deimos.com.pt>
From: Jonas Oppenlaender
Sent by: "ckan-dev"
Date: 29.04.2016 13:26
Cc: CKAN Development Discussions <ckan-dev at lists.okfn.org>
Subject: Re: [ckan-dev] Creating resource with upload from an extension
Yeah, the url parameter should not be required when doing uploads via the API.
See here:
https://github.com/ckan/ckan/pull/1641#issuecomment-160893234
And here:
https://github.com/ckan/ckan/issues/2769
Setting it to some random string worked for me, e.g.
res = ckan.action.resource_create(
package_id='2ad3c9de-502c-403a-8b03-bfc619697ff2',
url='dummy-value',
name='my file',
description='my upload with CKANAPI',
upload=open('./myfile.csv')
)
Best regards,
Jonas Oppenlaender
From: Pedro G Silva
Sent: 28 April 2016 14:11
To: Jonas Oppenlaender
Cc: CKAN Development Discussions
Subject: Re: [ckan-dev] Creating resource with upload from an extension
Hi
Your solution does not produce any error, although if I have resource_dict['url'] = None,
[ckanext.harvest.model] Validation Error: {'URL': 'Missing value'}
If I had a value I get that value on the resource link, not a resource pointing to the filestore (or ckan internal storage).
Any ideas?
I'm thinking on using the API inside the extension, but this is a very hacky solution..
On Wed, Apr 27, 2016 at 7:29 PM, Jonas Oppenlaender <jonas.oppenlaender at seme4.com> wrote:
Hi Pedro,
You can just pass it an open file pointer, like this:
resource_dict['upload'] = open(‘/path/to/file’, ‘rb’)
If you use an already open file, you might need to reset the current position before calling the API:
existingfilepointer.seek(0)
Regards,
Jonas Oppenlaender
From: Pedro G Silva
Sent: 27 April 2016 17:51
To: CKAN Development Discussions
Subject: [ckan-dev] Creating resource with upload from an extension
Hi
I have a custom extension which does some parsing on files and then adds them to the dataset created. How should I use the field upload to pass a file? Any ideas?
resource_dict={}
resource_dict['package_id'] = package_id
resource_dict['upload'] = ????
resource_dict['name'] = 'Product Download'
oi = plugins.toolkit.get_action('resource_create')(context,resource_dict)
--
Pedro Gracio Silva
Aerospace Systems / Production Center
Av. D. Joao II, Lt 1.17.01, 10 • 1998-023 Lisboa, Portugal
Ph: +351 21 893 3020 • Fax: +351 21 896 9099
--
Pedro Gracio Silva
Aerospace Systems / Production Center
Av. D. Joao II, Lt 1.17.01, 10 • 1998-023 Lisboa, Portugal
Ph: +351 21 893 3020 • Fax: +351 21 896 9099
_______________________________________________
ckan-dev mailing list
ckan-dev at lists.okfn.org
https://lists.okfn.org/mailman/listinfo/ckan-dev
Unsubscribe: https://lists.okfn.org/mailman/options/ckan-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.okfn.org/pipermail/ckan-dev/attachments/20160429/a3851efc/attachment-0003.html>
More information about the ckan-dev
mailing list