Heroku AmazonS3上文件的Ghostscript处理(使用Ubuntu)
我正在试验Ghostscript和处理必须留在AmazonS3上的文件(我的应用程序在Heroku上运行)。我计划在我的Heroku帐户中使用ghostscript二进制文件合并存储在S3上的PDF文档,如下所示: 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.pdfHeroku AmazonS3上文件的Ghostscript处理(使用Ubuntu),heroku,amazon-s3,ubuntu-10.04,Heroku,Amazon S3,Ubuntu 10.04,我正在试验Ghostscript和处理必须留在AmazonS3上的文件(我的应用程序在Heroku上运行)。我计划在我的Heroku帐户中使用ghostscript二进制文件合并存储在S3上的PDF文档,如下所示: gs-sDEVICE=pdfwrite-dNOPAUSE-dBATCH-dSAFER-sOutputFile=3.pdf 1.pdf2.pdf …其中1.pdf、2.pdf和3.pdf都在S3上 这可能吗 能不能做点像这样的工作: gs-sDEVICE=pdfwrite-dNOPAU
。。。由于证书被传递了?看来我试图做的事情在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)