Re: how to insert stream into table using nodejs?

From: Leonardo <sombriks(at)gmail(dot)com>
To: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: how to insert stream into table using nodejs?
Date: 2015-10-28 16:08:05
Message-ID: CAPDRjvFqgx7qao=gefPUOb5Bc5R1_RYSdQpjuxBmMhwq8pKkNg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hello Adrian,

i stumbled a few weeks ago into this, but this approach relies to the disk
instead of stream. since i can't guarantee disk reliability (clustering,
disk may not be the same), i can not use this approach.

thanks for the answer, i'll keep searching.

2015-10-27 10:37 GMT-03:00 Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>:

> On 10/26/2015 03:28 PM, Leonardo wrote:
>
>> Hello all,
>>
>> i'm looking for a way to insert a file into a table using available
>> binding for nodejs.
>>
>> just for comparison, if i where using java on server the upload code
>> would be like this:
>>
>> protected void doPost(HttpServletRequest request,
>> HttpServletResponse response) throws ServletException, IOException {
>> cors(response);
>> LOG.info("POST started: " + request.getContentType());
>> Collection<Part> parts = request.getParts();
>> for (Part part : parts) {
>> long len = part.getSize();
>> String name = part.getName();
>> LOG.info("attepmt to upload " + name + " from "
>> + request.getRemoteAddr());
>> if ("file".equals(name)) {
>> String mime = part.getContentType();
>> try (InputStream in = part.getInputStream()) {
>> String q = "insert into media (mediamime,mediadata) values (?,?)";
>> try (Connection con = ds.getConnection()) {
>> try (PreparedStatement ps = //
>> con.prepareStatement(q, Statement.RETURN_GENERATED_KEYS)) {
>> ps.setString(1, mime);
>> ps.setBinaryStream(2, in, len);
>> ps.executeUpdate();
>> try (ResultSet rs = ps.getGeneratedKeys()) {
>> if (rs.next()){
>> String m = ""+rs.getInt(1);
>> LOG.info("new media: "+m);
>> response.getWriter().write(m);
>> }
>> }
>> }
>> } catch (Exception e) {
>> LOG.severe(e.getMessage());
>> e.printStackTrace();
>> response.setStatus(500);
>> response.getWriter().write(e.toString());
>> }
>> }
>> }
>> }
>> }
>>
>> Attention for ps.setBinaryStream(2, in, len); part.
>>
>> Im' looking for a equivalent to this using pg, knex, anything capable of
>> this in the nodejs ecossytem.
>>
>
> I do not use nodejs, but I did find this:
>
>
> http://stackoverflow.com/questions/13124711/storing-a-file-in-postgres-using-node-postgres
>
>
>> Thanks in advance.
>>
>
>
> --
> Adrian Klaver
> adrian(dot)klaver(at)aklaver(dot)com
>

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Pavel Suderevsky 2015-10-28 16:13:32 Locks acquired by "update" statement within serializable transaction.
Previous Message Jeff Janes 2015-10-28 16:01:51 Re: Re: [GENERAL] 回复: postgres cpu 100% need help