我正在尝试编写一个使用node.js将图像存储在s3上的图像服务器。上传图像工作正常,我可以使用s3浏览器客户端正确下载和查看它(我使用的是Dragondisk,具体来说,但我也已经成功下载了它与其他的),但是当我使用Node下载它并尝试要将其写入磁盘,我无法打开文件(它说它可能已损坏或使用预览无法识别的文件格式)。我正在使用amazonsdkfornode和fs来编写文件。我知道您可以将可选编码传递给fs.writeFile,但我已经尝试了所有方法,但它不起作用。我还尝试在putObject上设置ContentType,在getObject上设置ResponseContentType
到目前为止的工作情况:使用此功能,我正在拍摄上传到我的服务器的图像,将它们发送到awsS3存储桶,然后从我的机器中删除它们。这一切都很好。问题:如何配置图片,以便亚马逊将其作为公开的并使用正确的Content-Type(image/jpeg或image/png)提供?现在它默认为私有(private)和(application/octet-stream)。这是我可以在Node中配置的东西吗?还是我需要在我的aws控制台中执行此操作?functionsendFileToAmazon(file){vars3bucket=newAWS.S3({params:{Bucket:'BUCKETNA
是否可以通过aws-sdk重命名s3上的对象??我找不到方法,也许有一个临时解决方案...... 最佳答案 我会回答我猜因为没有人有-这个应该可以工作//createanews3objectvars3=newAWS.S3();varBUCKET_NAME='your-bucket-name';varOLD_KEY='/original-file.js';varNEW_KEY='/new-file.js';//Copytheobjecttoanewlocations3.copyObject({Bucket:BUCKET_NAME,Co
我正在尝试使用multer-s3将图像上传到amazons3,但出现此错误:TypeError:Expectedopts.s3tobeobjectnode_modules/multer-s3/index.js:69:20这是我的服务器代码:varupload=multer({storage:s3({dirname:'/',bucket:'bucket',secretAccessKey:'key',accessKeyId:'key',region:'us-west-2',filename:function(req,file,cb){cb(null,file.originalname);}
我们可以为node.js中的单个请求中的多个对象创建S3(AWS)的多个签名URL。假设需要生成100个签名URL来访问100个对象,为此我们使用AWS-sdk的getSignedUrl()函数,该函数被调用100次。我们能否以优化的方式进行并减少请求数? 最佳答案 getSignedUrl()实际上并不发出请求。它完全在本地实现。 关于javascript-为AWSS3的多个对象创建多个签名url,我们在StackOverflow上找到一个类似的问题: ht
我创建了一个IAM策略以允许Cognito用户写入我的S3存储桶,但我想根据他们的CognitoID将他们限制在文件夹中。我已按照亚马逊的指示here并创建了一个如下所示的策略:{"Effect":"Allow","Action":["s3:PutObject","s3:GetObject"],"Resource":["arn:aws:s3:::mybucket/myappfolder/${cognito-identity.amazonaws.com:sub}*"]}但是,当我尝试使用AWSiOS开发工具包的v2上传时,我收到拒绝访问错误。如果我修改资源的最后一个路径组件以将${c
S3的node.jsAPI对getObject回调中返回的数据给出如下描述。来自http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#getObject-property:Body—(Buffer,TypedArray,Blob,String,ReadableStream)Objectdata.这是真的吗?有没有办法控制它是哪一个? 最佳答案 不知道能不能提前控制getObject()回调中提供的data.Body字段的类型。如果您只想确定是否收到了缓冲区,您可
我想连接上传到AmazonS3服务器上的文件。我该怎么做。我可以使用以下代码在本地机器上进行连接。varfs=require('fs'),files=fs.readdirSync('./files'),clips=[],stream,currentfile,dhh=fs.createWriteStream('./concatfile.mp3');files.forEach(function(file){clips.push(file.substring(0,6));});functionmain(){if(!clips.length){dhh.end("Done");return;}c
我正在尝试使用Node.js拍摄图像并将其上传到AmazonS3存储桶。最后,我希望能够将图像推送到S3,然后能够访问该S3URL并在浏览器中查看图像。我正在使用Curl查询以图像为主体执行HTTPPOST请求。curl-kvXPOST--data-binary"@test.jpg"'http://localhost:3031/upload/image'然后在Node.js方面,我这样做:exports.pushImage=function(req,res){varimage=newBuffer(req.body);vars3bucket=newAWS.S3();s3bucket.cr
使用AWSSDKforNode,为什么我在尝试删除不存在的对象(即S3key错误)时没有收到错误消息?另一方面,如果我指定一个不存在的存储桶,则会产生错误。如果你考虑下面的Node程序,Key参数列出了一个在桶中不存在的键,但是回调的error参数是null:varaws=require('aws-sdk')functiongetSetting(name){varvalue=process.env[name]if(value==null){thrownewError('Youmustsettheenvironmentvariable'+name)}returnvalue}vars3Cl