4

Google App Engine アプリケーションのサーブレットからリモートの FTP/SFTP サーバーにファイルを FTP/SFTP できるかどうか疑問に思っていました。または、TaskQueue に Task を作成することで...誰かこれを手に入れましたか?

GAE のドキュメントには、「ソケットを開こうとしたり、ファイルに書き込もうとしたバイトコードは実行時例外をスローする」と書かれています。

お時間をいただきありがとうございます!

4

5 に答える 5

2

はい、可能です!これを使用して、Google Cloud Storage から、システムに REST/SOAP API をまったく持たないサードパーティ ベンダーに CSV ファイルを送信します。Python での例を次に示します。

from ftplib import FTP
import cloudstorage as gcs

# Connect to vendor FTP site
ftp = FTP('www.somevendor.com','vendorusername', 'vendormypassword')

# Move into the specific folder where you want to place the file
ftp.cwd('/path_to/target_folder')

# Set the file name
filename = 'my_csv_file.csv'

# Get the file you want to FTP from Google Cloud Storage
filepath = '/myapp.appspot.com/my_csv_file.csv' 

# Open the file to prep for transfer
gcs_file = gcs.open(filepath,'r')

# Initiate the file transfer
ftp.storlines('STOR '+filename,gcs_file)

# Close the ftp connection
ftp.quit()

# Close the file
gcs_file.close()

return 'You are done...MONEY!!!'
于 2015-04-16T14:42:12.160 に答える
2

App Engine でソケットを使用できるようになりました。App Engine で ftp クライアント ライブラリを使用できますが、注意点が 1 つあります。パッシブ モードのみが機能します。また、パッシブ モードでは、2 番目の接続が別の IP アドレスから接続しようとすることがありますが、一部のサーバー (ftp.kernel.org など) は無視します。失敗した場合は、もう一度やり直してください。最終的には同じ IP アドレスが取得され、転送が機能します。

于 2013-06-04T07:56:53.133 に答える
1

GAE のドキュメントには、「ソケットを開こうとしたり、ファイルに書き込もうとしたバイトコードは実行時例外をスローする」と書かれています。

私が間違っていなければ、これは GAE からファイルを FTP 送信することをほとんど除外します。

ここでは、Google の従業員がポートを開くことができないことを確認しています

しかし、注意深く読むと、「リッスン」するためにポートを開くことは許可されていないと述べています。あなたはそれを試してみるべきです。この実験の結果を教えていただければ幸いです。:)

于 2009-12-26T11:31:47.537 に答える
0

App Engine では、ソケットを開くことはできません。すべての送信リクエストは HTTP 経由である必要があります。

于 2010-01-01T21:36:12.350 に答える