minio上传图片获取有效期为永久的访问地址
时间: 2023-11-28 17:48:40 浏览: 270
在 MinIO 中上传的文件默认情况下是私有的,只能由上传者本人进行访问。如果需要获取永久的公开访问地址,可以使用 MinIO 提供的 Presigned URL 功能。
Presigned URL 是一种特殊的 URL,可以用于授权访问 MinIO 中的文件。使用 Presigned URL,您可以授权其他人访问 MinIO 中的文件,而无需将访问权限授予整个桶或对象。Presigned URL 的有效期由您自己指定,可以设置为永久。
以下是使用 MinIO Python SDK 生成 Presigned URL 的示例代码:
```python
from minio import Minio
from datetime import datetime, timedelta
# 初始化 MinIO 客户端
client = Minio(
endpoint='minio.example.com',
access_key='YOUR_ACCESS_KEY',
secret_key='YOUR_SECRET_KEY',
secure=False
)
# 获取一个对象的 Presigned URL
bucket_name = 'my-bucket'
object_name = 'my-object'
expires_in_days = 3650 # 设置有效期为 10 年
# 计算过期时间
expires_at = datetime.utcnow() + timedelta(days=expires_in_days)
# 生成 Presigned URL
url = client.presigned_get_object(
bucket_name=bucket_name,
object_name=object_name,
expires=expires_at
)
print(url)
```
在上述示例代码中,`expires_in_days` 变量用于设置 Presigned URL 的有效期,单位为天。`expires_at` 变量则是计算出来的 Presigned URL 的过期时间,使用了当前时间加上有效期这个计算方法。`client.presigned_get_object` 方法用于生成 Presigned URL。最后打印出来的 `url` 就是生成的 Presigned URL。
注意,Presigned URL 指定的有效期过后,URL 将不再可用,需要重新生成。如果您需要永久地公开访问文件,建议将文件 ACL 设置为公共读取。
阅读全文