[ckan-dev] Creating resource with upload from an extension

Pedro G Silva pedro.gracio at deimos.com.pt
Fri Apr 29 14:16:06 UTC 2016


Hi Florian,
Using your solution does not trigger any errors, however, after uploading,
the url is 'URL: http://will-be-overwritten-automatically'
So I guess something else is missing? I'll stick to my ckanapi solution for
now

On Fri, Apr 29, 2016 at 12:49 PM, <lucia.espona at wsl.ch> wrote:

> 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 <pedro.gracio at deimos.com.pt>
> *Sent: *28 April 2016 14:11
> *To: *Jonas Oppenlaender <jonas.oppenlaender at seme4.com>
> *Cc: *CKAN Development Discussions <ckan-dev at lists.okfn.org>
> *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 <pedro.gracio at deimos.com.pt>
> *Sent: *27 April 2016 17:51
> *To: *CKAN Development Discussions <ckan-dev at lists.okfn.org>
> *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)
>
>
>
> --
>
>
>
>
>
> [image: DEIMOS Engenharia, SA] <http://www.deimos.pt>
>
> *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
>
>
>
>
>
>
>
>
>
>
>
> --
>
>
>
>
>
> [image: DEIMOS Engenharia, SA] <http://www.deimos.pt>
>
> *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
>
> _______________________________________________
> 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
>
>


-- 


[image: DEIMOS Engenharia, SA] <http://www.deimos.pt>
*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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.okfn.org/pipermail/ckan-dev/attachments/20160429/47dfdc85/attachment-0003.html>


More information about the ckan-dev mailing list