S 3ヘルパー関数
以下は、最も一般的に使用されるS 3機能(aws-sdk)のいくつかのリストであり、どのようにTypesScriptを使用してそれらを使用することができます.
getObject
: Retrieves objects from Amazon S3
export async function downloadFromS3(
params: S3.GetObjectRequest
): Promise<any> {
console.info("---- DOWNLOADING FROM S3", JSON.stringify(params, null, 2));
try {
return await s3.getObject(params).promise();
} catch (error) {
console.log(error);
throw error;
}
}
この関数はGetObjectRequest
型のパラメータとその定義を期待していますこのようにこの関数を呼び出すことができます
await downloadFromS3({
Bucket: "bucketName",
Key: "objectKey",
});
upload
: Uploads objects to Amazon S3
export async function uploadtoS3(s3Data: S3.PutObjectRequest) {
console.info(
"---- UPLODAING TO S3",
JSON.stringify(`${s3Data.Bucket} ${s3Data.Key}`, null, 2)
);
try {
return await s3.upload(s3Data).promise();
} catch (error) {
console.log(error);
return error;
}
}
この関数はPutObjectRequest
型のパラメータとその定義を期待していますこのようにこの関数を呼び出すことができます
await uploadtoS3({
Bucket: "bucketName",
Key: "objectKey",
ACL: "public-read",
CacheControl: "max-age=86400",
Body: JSON.stringify(dataObject),
ContentType: "application/json",
});
deleteObject
: deletes an objects from Amazon S3
export async function deleteFromS3(
params: S3.DeleteObjectRequest
): Promise<any> {
console.info("---- DELETE FROM S3", JSON.stringify(params, null, 2));
try {
return await s3.deleteObject(params).promise();
} catch (error) {
console.log(error);
throw error;
}
}
この関数はDeleteObjectRequest
型のパラメータとその定義を期待していますこのようにこの関数を呼び出すことができます
await deleteFromS3({
Bucket: "bucketName",
Key: "objectKey",
});
listObjectsV2
: Returns some or all (up to 1,000) of the objects in a bucket with each request. You can use the request parameters as selection criteria to return a subset of the objects in a bucket.
//only returns a max of 1000 keys hence we must check for more. Look for IsTruncated value and then recurse.
export async function listFilesFromS3(s3Request: S3.ListObjectsV2Request, allKeys: Array<string>) {
console.info("---- LISTING S3 BUCKET", JSON.stringify(s3Request, null, 2));
try {
const data:S3.ListObjectsV2Output = await s3.listObjectsV2(s3Request).promise();
let contents = data.Contents;
contents.forEach(function (content) {
allKeys.push(content.Key);
});
if (data.IsTruncated) {
s3Request.ContinuationToken = data.NextContinuationToken;
console.log("get further list...");
return listFilesFromS3(s3Request, allKeys);
} else {
return allKeys;
}
} catch (error) {
console.log(error);
return error;
}
}
この関数はListObjectsV2Request
型のパラメータとその定義を期待していますこのようにこの関数を呼び出すことができます
await listFilesFromS3(
{
Bucket: "bucketName",
},
[]
);
headObject
: The HEAD action retrieves metadata from an object without returning the object itself. This action is useful if you're only interested in an object's metadata. To use HEAD, you must have READ access to the object.
export async function getHeadObect(s3Data: S3.HeadObjectRequest) {
console.info(
"---- GET HEAD OBJECT",
JSON.stringify(`${s3Data.Bucket} ${s3Data.Key}`, null, 2)
);
try {
return await s3.headObject(s3Data).promise();
} catch (error) {
console.log(error);
return error;
}
}
この関数はHeadObjectRequest
型のパラメータとその定義を期待していますこの関数を呼び出す方法の例は次のようになります
await listFilesFromS3(
{
Bucket: "bucketName",
},
[]
);
これらのラッパー関数https://github.com/aws/aws-sdk-js/blob/master/clients/s3.d.tsを使用する方法の例を見ることができます.Reference
この問題について(S 3ヘルパー関数), 我々は、より多くの情報をここで見つけました https://dev.to/metacollective/s3-helper-functions-in-typescript-di5テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol