From 8d84709fe7946e73547baac9afa27d56fcc4ddec Mon Sep 17 00:00:00 2001 From: cxymds Date: Fri, 21 Mar 2025 16:14:47 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=EF=BC=9Abuckets=20=20tag?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/buckets/info.vue | 117 +++++++++++++++++++++++++++++++++--- composables/useBucket.ts | 50 +++++++++++---- 2 files changed, 146 insertions(+), 21 deletions(-) diff --git a/components/buckets/info.vue b/components/buckets/info.vue index 9c592b4..7699054 100644 --- a/components/buckets/info.vue +++ b/components/buckets/info.vue @@ -118,8 +118,22 @@ todo - - todo + + + + {{ tag.Key }}:{{ tag.Value }} + diff --git a/composables/useBucket.ts b/composables/useBucket.ts index 413de9f..7c292a0 100644 --- a/composables/useBucket.ts +++ b/composables/useBucket.ts @@ -1,31 +1,59 @@ import { CreateBucketCommand, HeadBucketCommand, - ListBucketsCommand -} from '@aws-sdk/client-s3'; + ListBucketsCommand, + GetBucketTaggingCommand, + PutBucketTaggingCommand, + DeleteBucketTaggingCommand, +} from "@aws-sdk/client-s3" export function useBucket({ region }: { region?: string }) { - const $client = useNuxtApp().$s3Client; + const $client = useNuxtApp().$s3Client const listBuckets = async () => { - return await $client.send(new ListBucketsCommand({})); - }; + return await $client.send(new ListBucketsCommand({})) + } const createBucket = async (bucket: string) => { const params = { Bucket: bucket, - }; + } - return await $client.send(new CreateBucketCommand(params)); - }; + return await $client.send(new CreateBucketCommand(params)) + } const headBucket = async (bucket: string) => { const params = { Bucket: bucket, - }; + } - return await $client.send(new HeadBucketCommand(params)); + return await $client.send(new HeadBucketCommand(params)) } - return { listBuckets, createBucket, headBucket }; + const getBucketTagging = async (bucket: string) => { + const params = { + Bucket: bucket, + } + + return await $client.send(new GetBucketTaggingCommand(params)) + } + + const putBucketTagging = async (bucket: string, tagging: any) => { + const params = { + Bucket: bucket, + Tagging: tagging, + } + + return await $client.send(new PutBucketTaggingCommand(params)) + } + + const deleteBucketTagging = async (bucket: string) => { + const params = { + Bucket: bucket, + } + + return await $client.send(new DeleteBucketTaggingCommand(params)) + } + + return { listBuckets, createBucket, headBucket, getBucketTagging, putBucketTagging, deleteBucketTagging } }