我正在使用node的开发者工具包将图像上传到AWS S3:
const aws = require('aws-sdk');
const s3Bucket = process.env.S3_BUCKET;
const s3 = new aws.S3({
signatureVersion: 'v4',
region: process.env.S3_REGION,
accessKeyId: process.env.S3_ACCESS_KEY_ID,
secretAccessKey: process.env.S3_SECRET_ACCESS_KEY,
});
const s3Params = {
Bucket: s3Bucket,
Key: filename,
Expires: 60,
ContentType: filetype,
ACL: 'public-read',
};
这是可行的,但我如何才能使图像上传到一个特定的文件夹中的桶?
AWS S3没有文件夹结构。它显示了S3 bucket中的文件夹,但这是关键结构。我在我的一个作品中使用了copy命令。正在复制S3 bucket文件夹中的文件。
AWS s3 cpmyapp.zips3://$S3_BUCKET_NAME/FolderName/FileName
示例
AWS s3 cpmyapp.zips3://$S3_BUCKET_NAME/MyFolder/MyFileName
无需在AWS S3 bucket中创建任何文件夹,如果不存在,则会创建特定文件夹
上面的代码是复制myapp.zip文件夹内的文件-S3存储桶的MyFolder,文件名为MyFileName
您可以将密钥写入FULL PATH
const uploadToS3Bucket = (image, filePath) => {
return new Promise((resolve, reject) => {
let s3 = new AWS.S3({
accessKeyId: process.env.S3_ACCESS_KEY,
secretAccessKey: process.env.S3_SECRET_KEY,
region: process.env.S3_REGION,
});
const bucketName = process.env.S3_BUCKET_NAME;
let bucketPath = filePath;
let params = {
Bucket: bucketName,
Key: bucketPath,
Body: image,
};
s3.putObject(params, function (err, data) {
if (err) {
console.log(err);
} else {
resolve();
}
});
});
};
await uploadToS3Bucket(imageFile,"folder1/folder2/image1.png");
Amazon S3是一个平面存储系统,实际上并不使用文件夹。
相反,键(文件名)包括对象的完整路径,例如:
folder1/folder2/foo.txt
Amazon S3管理控制台确实显示文件夹中的bucket内容,但它们是一种人工构造(称为公共前缀),使我们更容易理解。
因此,如果你想上传到一个特定的文件夹,只需在密钥中包含完整的路径,它就会工作(或者更准确地说,假装工作!)。
有趣的事实:你可以复制到一个不存在的文件夹,这个文件夹会为你“创建”。然后,如果删除该对象,该文件夹将被“删除”,因为它实际上从未存在过!
我正试图上传一个文件到我的谷歌硬盘,下面的代码工作。如何指定要上载到哪个文件夹,即驱动器--shared with me--csvFolder
Amazon s3配置文件 但如果无法上载文件并给出以下错误 错误:无法上载文件java.io.IOException:需要Ant GLOB模式,但看到'/var/lib/jenkins/jobs/narad-dev-clean/workspace/*_audit.csv'。有关语法,请参见http://ant.apache.org/manual/types/fileset.html:hudson
我正在尝试将文件上传到s3存储桶中的文件夹中。我正在用PHP做以下工作: 桶名是发送到PHP的字符串,表示使用正斜杠的子文件夹: 然而,当我将一个新图像上传到我的bucket时,它会被上传到bucket root。如何将此文件上载到bucket中的子文件夹? 谢谢
问题内容: 我正在尝试使用HttpClient下载PDF文件。我可以获取文件,但是我不确定如何将字节转换为PDF并将其存储在系统中的某个位置 我有以下代码,如何将其存储为PDF? 问题答案: 编辑: 您还可以使用BufferedOutputStream和BufferedInputStream来加快下载速度:
我想使用PHP SDK将一个文件从外部URL直接上传到Amazon S3 bucket。我用以下代码实现了这一点: 其中,函数remote_filesize如下所示: 但是,如果我可以在上传到Amazon时跳过设置文件大小就好了,因为这可以节省我去自己服务器的行程。但是如果我删除$s3中的设置“长度”属性-
在构建代码之后,我无法将构建工件上载到aws s3 bucket。 下面是我从jenkins那里得到的控制台输出片段。 错误:上传文件失败com.amazonaws.services.s3.model.Amazon S3异常:桶在这个区域:空。请使用此区域重试请求(服务:Amazon S3;状态代码:301;错误代码:PermanentReDirect;请求ID:EDD73B3CC84C0AF6)