Não é possível configurar o servidor de upload blueimp jquery para o Node usando o SMF no SmartOS

1

Eu configurei um servidor de upload de arquivo jQuery blueimp do nó em uma nuvem Joy SmartOS SmartMachine ( nodejs 13.1.0) instância.

Funciona bem se eu iniciá-lo manualmente usando o comando ./node_modules/blueimp-file-upload-node/server.js.

No entanto, se iniciar usando o SMF, o servidor poderá responder a GET e entregar as fotos, mas não poderá aceitar POST e quebras. Abaixo está o manifesto do modelo, os registros de erro do cliente e do servidor. Qualquer ajuda sobre como posso criar o manifesto para permitir receber POST muito apreciado.

Erro comum a todos os manifestos no POST do navegador

Request URL:
http://sub1.mydomain.com:8888/node_modules/blueimp-file-upload-node/server.js
Request Headers CAUTION: Provisional headers are shown.
Accept:
application/json, text/javascript, */*; q=0.01
Content-Type:
multipart/form-data; boundary=----WebKitFormBoundary4x1QBIUsPyFwN0xP
Origin:
http://sub1.mydomain.com
Referer:
http://sub1.mydomain.com
User-Agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.19 Safari/537.36
 Request Payload
 ------WebKitFormBoundary4x1QBIUsPyFwN0xP
Content-Disposition: form-data; name="send-message"

 ------WebKitFormBoundary4x1QBIUsPyFwN0xP
Content-Disposition: form-data; name="files[]"; filename="84a0ff8ef9ba11e1afba1231380fc0f9_7.jpg"
Content-Type: image/jpeg


------WebKitFormBoundary4x1QBIUsPyFwN0xP--

O SMF se manifesta - apenas o que eu mudo após o primeiro para cada caso:

SMF se manifesta como root - não / opt / local / bin / node no exec

<service_bundle type="manifest" name="kamkam">
<service name="site/kamkam-service" type="service" version="1">
<create_default_instance enabled="true"/>
<single_instance/>
<dependency name="network" grouping="require_all" restart_on="refresh" type="service">
<service_fmri value="svc:/milestone/network:default"/>
</dependency>
<dependency name="filesystem" grouping="require_all" restart_on="refresh" type="service">
<service_fmri value="svc:/system/filesystem/local"/>
</dependency>

<method_context working_directory="/home/projects/egoer/sub1.mydomain.com/node_modules/blueimp-file-upload-node">
<method_credential user="root"/>
<method_environment>
  <envvar name="PATH" value="/home/projects/egoer/sub1.mydomain.com/node_modules/blueimp-file-upload-node/bin:/usr/local/bin:/usr/bin:/usr/sbin:/bin"/>
  <envvar name="HOME" value="/home/projects/egoer/sub1.mydomain.com/node_modules/blueimp-file-upload-node"/>
  <envvar name="NODE_ENV" value="production"/>
</method_environment>
</method_context>

<exec_method
type="method"
name="start"
exec="/home/projects/egoer/sub1.mydomain.com/node_modules/blueimp-file-upload-node/server.js"
timeout_seconds="60"/>

<exec_method
type="method"
name="stop"
exec=":kill"
timeout_seconds="60"/>

<property_group name="startd" type="framework">
<propval name="duration" type="astring" value="child"/>
<propval name="ignore_error" type="astring" value="core,signal"/>
</property_group>

<property_group name="application" type="application">
</property_group>

<stability value="Evolving"

ERRO COM USUÁRIO DA RAIZ NÃO / opt / local / bin / node no exec

/home/projects/egoer/sub1.mydomain.com/node_modules/blueimp-file-upload-    node/node_modules/formidable/lib/incoming_form.js:28
  this.uploadDir = opts.uploadDir || os.tmpDir();
                                    ^
TypeError: Object #<Object> has no method 'tmpDir'
at new IncomingForm (/home/projects/egoer/sub1.mydomain.com/node_modules/blueimp-file-upload- node/node_modules/formidable/lib/incoming_form.js:28:41)
at [object Object].post (/home/projects/egoer/sub1.mydomain.com/node_modules/blueimp-file-upload-node/server.js:211:20)
at Server.<anonymous> (/home/projects/egoer/sub1.mydomain.com/node_modules/blueimp-file-upload-node/server.js:134:25)
at Server.emit (events.js:67:17)
at HTTPParser.onIncoming (http.js:1124:12)
at HTTPParser.onHeadersComplete (http.js:108:31)
at Socket.ondata (http.js:1019:22)
at Socket._onReadable (net.js:683:27)
at IOWatcher.onReadable [as callback] (net.js:177:10)

SMF se manifesta como administrador - todos os privilégios de arquivo

<method_credential user="admin" group="staff" privileges="basic,net_privaddr,file_chown,file_chown_self,file_dac_read,file_dac_search,file_dac_write,file_owner"/>

exec="/opt/local/bin/node /home/projects/egoer/sub1.mydomain.com/node_modules/blueimp-file-upload-node/server.js"

ERRO com admin todos os privilégios de arquivo

events.js:72
    throw er; // Unhandled 'error' event
          ^
Error: EACCES, open '/home/projects/egoer/sub1.mydomain.com/node_modules/blueimp-file-upload-node/tmp/09008ecbfafd1c3570eff7ae0ae52fa8'
[ Nov 25 15:41:29 Stopping because all processes in service exited. ]

SMF se manifesta como root usando / opt / local / bin / node no exec

<method_credential user="root"/>
exec="/opt/local/bin/node /home/projects/egoer/sub1.mydomain.com/node_modules/blueimp-file-upload-node/server.js"

ERRO COM USUÁRIO ROOT - usando / opt / local / bin / node no exec

events.js:72
    throw er; // Unhandled 'error' event
          ^
Error: spawn ENOENT
at errnoException (child_process.js:975:11)
at Process.ChildProcess._handle.onexit (child_process.js:766:34)
 [ Nov 25 16:00:16 Stopping because all processes in service exited. ]
    
por Bau 25.11.2013 / 18:14

0 respostas