- PR -

httpのみでファイルアップロード

投稿者投稿内容
アレク
会議室デビュー日: 2005/04/11
投稿数: 14
投稿日時: 2005-09-20 22:39
いつもお世話になっております。

今回どうしても解決できない案件がありまして
皆さんの知識を貸していただければと書き込みさせていただきました。

その案件というのは、あるLinuxサーバー(apache)に
外部のPCから何らかの処理を用いてファイルをアップロードするというものです。
この元サーバーはapache以外のサービスは動いておらず、且つプログラムを組み込むことができない状態にあります。
つまりこの元サーバーにPHPやPerlを組み込んで、そこにアップロードするスクリプト書けば
すぐに解決する問題なのですが、それができない状態です。
FTPを入れてもすぐに解決すると思われるでしょうが、これも同様に組み込めないという事情にあります。
・元サーバーはapacheによるhttpの入出力しか受け付けない。
これが大前提で存在しています。
そしてそのサーバーに何らかのプログラムを置くこともできません。
その状態のサーバーに、どうにかして外部からファイルをアップロードする機能をつけなければなりません。
エンドユーザーでもできるように、それこそ普通のWebで利用されている
アップローダーのようなイメージで実装しなければなりません。
一応SSHはありますので、リモートから接続してファイルアップとかはできるのですが
これはエンドユーザーには敷居が高く、しかも専用のソフトウェアをインストールしなければなりません。

理想は、Webページにアクセスして、アップローダのようなインターフェースでファイルを
元サーバーにアップできるというものです。
このアクセスするWebページは他のサーバーとなります。
前述したように、元サーバーにはスクリプトが置けない(解析するモノが組み込めない)為です。
しかしこうなると、外部のサーバーのスクリプトから
違うサーバーのディレクトリへ書き込めるわけもありません。
そもそもディレクトリを取得できないですよね?(できるのかどうか知識不足でわかりませんでした)

どうにかしてこの元サーバーにファイルをアップロードする方法はないでしょうか?

元サーバーの構成はLinux FedoraCore3
アクセスに使えるのはapacheのみ(SSHは管理者専用なので事実上使えない)
FTPは使えない。
スクリプトをこのサーバーで動作させることはできない。
ディレクトリの権限の設定などは変更可能。
という条件では不可能でしょうか?

FTPやスクリプトをそこに置けばすぐに解決するというのは重々承知です。
しかしクライアントの都合上、それができない状態です。
Java僧
ぬし
会議室デビュー日: 2003/11/06
投稿数: 261
投稿日時: 2005-09-20 22:57
apacheにモジュールが組み込めるのなら、WebDAVなどどうですか?
PHPがダメって書いてあるから無理かな。
どうしてこんなに厳しい制限があるのでしょう?クライアントの都合上って?
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2005-09-20 23:00
つまりWevDAVを使いたいと?
_________________
甕星 <mikahosi@abox9.so-net.ne.jp>
http://blogs.msmvp.jp/mikahosi/
HM
会議室デビュー日: 2005/09/20
投稿数: 10
投稿日時: 2005-09-20 23:05
開けられるポートに制限があるとかでしょうか?
a-s
会議室デビュー日: 2005/07/31
投稿数: 7
投稿日時: 2005-09-20 23:23
WebDAVの案は既出のようですので。

引用:

アレクさんの書き込み (2005-09-20 22:39) より:
理想は、Webページにアクセスして、アップローダのようなインターフェースでファイルを
元サーバーにアップできるというものです。
このアクセスするWebページは他のサーバーとなります。
前述したように、元サーバーにはスクリプトが置けない(解析するモノが組み込めない)為です。
しかしこうなると、外部のサーバーのスクリプトから
違うサーバーのディレクトリへ書き込めるわけもありません。
そもそもディレクトリを取得できないですよね?(できるのかどうか知識不足でわかりませんでした)



別のサーバは公開できて、スクリプトでWeb経由のアップローダ機能をつけても
いいのですか?
では、
・別のサーバにスクリプトなどでWeb アップローダ機能を用意する。
・クライアントは別のサーバのWebアップローダ機能にブラウザなどでアクセスし
 ファイルをアップロードする。
・アップローダ機能ではその別のサーバ上のディレクトリに、クライアントから
 アップロードされたファイルを出力する。
・別のサーバ上でscp を起動すればSSH の口で元サーバへファイルを送り込める。
 (起動方法ははスクリプトの中とか、cron起動とか)
かな。

深く考えずに書いていますので、ダメかもしれません。


[ メッセージ編集済み 編集者: a-s 編集日時 2005-09-20 23:28 ]
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2005-09-21 00:32
はじめまして。

HTTPのPUTを利用したらもしかしたら解決できるかもしれませんね。
http://www.google.co.jp/search?q=apache+method+put&lr=lang_ja

まれにシステム上の制約が理不尽に厳しい質問を見かけるのですが、
厳しい制約の背景も書いておくと回答を得られやすいと思いますよ。

全く違った発想の代替案を提示してくれる方もいるかもしれませんし。
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2005-09-21 00:47
こんばんは。部分的に。
引用:
あしゅさんの書き込み (2005-09-21 00:32) より:
まれにシステム上の制約が理不尽に厳しい質問を見かけるのですが、
厳しい制約の背景も書いておくと回答を得られやすいと思いますよ。


こちらは私も同感です。
今回、スクリプトやCGIを使うのと、モジュールを組み込むのに本質的な違いがあるとは思えませんし、両方封じられたら、そもそも非常に解決は困難かと思いますし。
無理を承知でも突き進みたいのか、「無理であること」を誰かに説得するために後押しが欲しいのか…。
アレク
会議室デビュー日: 2005/04/11
投稿数: 14
投稿日時: 2005-09-21 22:35
多くのレスありがとうございます。

まずWebDavですが、基本的にスクリプトと同じく組み込むことができないので
導入は不可となります。
出来る事はせいぜい権限やパーミッションの設定ぐらいだと考えて貰っていいぐらい
出来る事は限られています。

a-cさんのは元サーバーに関係なくできそうなので、
今のところこの辺の情報を収集して、出来るかどうか調べている最中です。

PUTについては調べてみたところ、セキュリティ的にも問題とあり
apacheでデフォルトで有効になっていないであろう事から、導入はちょっと無理そうでした。

ちなみに制限の理由としては、このサーバー自体は自社で運用しているものではなく
他社が運用しているものなのです。
つまりA社がB社にこのサーバーの初期運用を最初頼んでいて
後からC社(私の所)が機能追加という形で参入した状態です。
しかしB社から運用が移動したわけではなく、今回の機能の分だけをこちらで担当という形です。
よって元運用のB社的に、余計なものを組み込まれると
保守等の問題で面倒になるので、サーバーに機能変更を加えることなく実装してくれといわれております。

スキルアップ/キャリアアップ(JOB@IT)