在眾多雲端服務中,鮮少會一開始註冊會員後,就要求玩家課金,畢竟你還不知道這個網站或線上服務,能夠給你帶來什麼功能。 適度地提供免費額度,讓會員試用是常態了! 然而,如果這個免費沒有加以限制,很快就會變成試探人性極限的翻車現場。 接著我們會來嘗試,避免那些可能會讓費用暴增的風險,要來限制免費額度哩。
500M
為例。alex
的存放大小import boto3
s3 = boto3.client("s3")
def get_prefix_size(bucket, prefix):
total_size = 0
continuation_token = None
while True:
kwargs = {"Bucket": bucket, "Prefix": prefix}
if continuation_token:
kwargs["ContinuationToken"] = continuation_token
resp = s3.list_objects_v2(**kwargs)
for obj in resp.get("Contents", []):
total_size += obj["Size"]
if resp.get("IsTruncated"): # 有下一頁
continuation_token = resp["NextContinuationToken"]
else:
break
return total_size
# 範例:計算 alex 的 videos 總容量
bucket_name = "exsky-backup-media"
prefix = "alex/videos/"
size_bytes = get_prefix_size(bucket_name, prefix)
print(f"{prefix} 已使用 {size_bytes/1024/1024:.2f} MB")
輸出如下
- python count_s3_size.py
alex/videos/ 已使用 428.31 MB