1

私は Ghostscript を試しており、Amazon S3 に保持する必要があるファイルを処理しています (私のアプリは Heroku で実行されています)。次のように、S3 に保存されている PDF ドキュメントをマージする、Heroku アカウントで Ghostscript バイナリを使用する予定です。

gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dSAFER -sOutputFile=3.pdf 1.pdf2.pdf

...ここで、1.pdf、2.pdf、および 3.pdf はすべて S3 にあります。

これは可能ですか?

このようなものはうまくいきますか:

gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dSAFER -sOutputFile=s3://mybucket/3.pdf s3://mybucket/1.pdf s3://mybucket/2.pdf

...資格情報が何らかの形で引き継がれていますか?

4

1 に答える 1

0

私がやろうとしていることは、Herokuでは実用的ではないか、不可能なようです。さらに調査したところ、Heroku Railsアプリの#{$ Rails.root} / tmpフォルダーをスクラッチパッドとして使用して、マージされたPDFドキュメントを作成し、それをS3に移動できることがわかりました。

以下がテストされ、機能しています(ファイル1.pdf、2.pdf、および3.pdfがすでにRails tmpフォルダーにあると想定しています)。

system("gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dSAFER -sOutputFile=#{Rails.root}/tmp/merged.pdf #{Rails.root}/tmp/1.pdf #{Rails.root}/tmp/2.pdf #{Rails.root}/tmp/3.pdf")
system("ls -al #{Rails.root}/tmp/")
file = File.open("#{Rails.root}/tmp/merged.pdf", "r")
data = file.read
AWS::S3::Base.establish_connection!(:access_key_id     => ENV['S3_ACCESS_KEY_ID'], :secret_access_key => ENV['S3_SECRET_ACCESS_KEY'])   
AWS::S3::S3Object.store("merged.pdf",data,ENV['S3_BUCKET_NAME'], :access => :private)
于 2012-11-01T20:57:05.040 に答える