Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Heroku AmazonS3上文件的Ghostscript处理(使用Ubuntu)_Heroku_Amazon S3_Ubuntu 10.04 - Fatal编程技术网

Heroku AmazonS3上文件的Ghostscript处理(使用Ubuntu)

Heroku 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

我正在试验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.pdf


。。。由于证书被传递了?

看来我试图做的事情在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)