我正在编写一个应用程序,它从url下载图像,然后使用AWS-SDK将其上传到S3桶中。
以前,我只是下载图像并将它们保存到磁盘上,就像这样。
request.head(url, function(err, res, body){
request(url).pipe(fs.createWriteStream(image_path));
});
然后像这样将图像上传到AWS S3
fs.readFile(image_path, function(err, data){
s3.client.putObject({
Bucket: 'myBucket',
Key: image_path,
Body: data
ACL:'public-read'
}, function(err, resp) {
if(err){
console.log("error in s3 put object cb");
} else {
console.log(resp);
console.log("successfully added image to s3");
}
});
});
但我想跳过将映像保存到磁盘的部分。有什么方法可以管道
响应从请求(url)
到一个变量,然后上传它吗?
这就是我所做的工作,并且工作得很好:
null
const request = require('request-promise')
const AWS = require('aws-sdk')
const s3 = new AWS.S3()
const options = {
uri: uri,
encoding: null
};
async load() {
const body = await request(options)
const uploadResult = await s3.upload({
Bucket: 'bucket_name',
Key : path,
Body : body,
}).promise()
}
下面的javascript很好地实现了这一点:
var options = {
uri: uri,
encoding: null
};
request(options, function(error, response, body) {
if (error || response.statusCode !== 200) {
console.log("failed to get image");
console.log(error);
} else {
s3.putObject({
Body: body,
Key: path,
Bucket: 'bucket_name'
}, function(error, data) {
if (error) {
console.log("error downloading image to s3");
} else {
console.log("success uploading to s3");
}
});
}
});
问题内容: 我正在编写一个应用程序,该应用程序从url下载图像,然后使用aws-sdk将其上传到S3存储桶。 以前,我只是下载图像并将其保存到磁盘中,就像这样。 然后像这样将图像上传到AWS S3 但是我想跳过将图像保存到磁盘的部分。有什么办法可以让我对一个变量进行响应,然后将其上传? 问题答案: 这是一些可以很好地做到这一点的javascript:
我用ajax提交了一个表单,在表单提交后,我需要下载一个用php库MPDF在服务器端生成的pdf文件。我不想在服务器中保存pdf文件,因为在用户加载后,该文件不再需要了。我在谷歌上搜索过,有人建议使用Blob对象。我还返回一个json响应以显示给用户。有人能解释一下是否可能以及如何实现吗?多谢 cache-control public,必须重新验证,max-age=0连接 Keep-Alive内容
问题内容: 我目前正在我的应用程序中显示视频,希望用户能够将其保存到其设备图库/相册照片/相机胶卷中。这就是我正在做的事情,但视频未保存在相册中:/ 我也调查这个: 但是我有错误“无法从文件创建数据(空)”。我的“ assetChangeRequest”为零。我不了解我的网址是有效的,并且当我使用浏览器访问它时,它会下载快速时间文件。 如果有人可以帮助我,将不胜感激!我正在使用Swift,并将iO
问题内容: 我必须使用下面给出的Selenium Webdriver执行以下任务。 单击任何开始下载任何文件的链接/按钮(文件类型可以是图像,pdf,jar等) 单击弹出窗口上的“保存”(如果显示)(例如http://selenium.googlecode.com/files/selenium-server-standalone-2.33.0.jar) 提供所需的位置以保存该文件。 任何人都可以共
问题内容: 好吧,这看起来很简单,确实如此。将文件下载到服务器所需要做的就是: 只有一个问题。如果文件很大,例如100mb,该怎么办?然后,您将耗尽内存,并且无法下载文件。 我想要的是一种在下载文件时将文件写入磁盘的方法。这样,我可以下载更大的文件,而不会遇到内存问题。 问题答案: 从PHP 5.1.0开始,支持通过传递流句柄作为参数来逐段编写: 从手册中: 如果 数据 [是第二个参数]是流资源,
我有一个问题,连接两个不同的进程,我正在工作。我的任务是从数据库中提取数据,从数据中创建一个文件,然后将其上传到FTP服务器。 到目前为止,我已经使用以下代码创建并下载了文件,是包含完整文本文件的字符串: 当我只想在浏览器中运行脚本并下载文件,但我希望将其发送到FTP服务器时,这会起作用。 我知道我与FTP服务器的连接正常工作,并且我正确地导航到正确的目录,并且我已经从磁盘中提取了文件并使用将它们