MyFSIO v0.2.2 Release #14

Merged
kqjy merged 17 commits from next into main 2026-01-19 07:12:15 +00:00
Showing only changes of commit 3742f0228e - Show all commits

View File

@@ -5,8 +5,10 @@ import json
import uuid import uuid
import psutil import psutil
import shutil import shutil
from datetime import datetime, timezone as dt_timezone
from typing import Any from typing import Any
from urllib.parse import quote, urlparse from urllib.parse import quote, urlparse
from zoneinfo import ZoneInfo
import boto3 import boto3
import requests import requests
@@ -39,6 +41,20 @@ from .storage import ObjectStorage, StorageError
ui_bp = Blueprint("ui", __name__, template_folder="../templates", url_prefix="/ui") ui_bp = Blueprint("ui", __name__, template_folder="../templates", url_prefix="/ui")
def _format_datetime_display(dt: datetime) -> str:
"""Format a datetime for display using the configured timezone."""
display_tz = current_app.config.get("DISPLAY_TIMEZONE", "UTC")
if display_tz and display_tz != "UTC":
try:
tz = ZoneInfo(display_tz)
if dt.tzinfo is None:
dt = dt.replace(tzinfo=dt_timezone.utc)
dt = dt.astimezone(tz)
except (KeyError, ValueError):
pass
return dt.strftime("%b %d, %Y %H:%M")
def _storage() -> ObjectStorage: def _storage() -> ObjectStorage:
return current_app.extensions["object_storage"] return current_app.extensions["object_storage"]
@@ -499,7 +515,7 @@ def list_bucket_objects(bucket_name: str):
"key": obj.key, "key": obj.key,
"size": obj.size, "size": obj.size,
"last_modified": obj.last_modified.isoformat(), "last_modified": obj.last_modified.isoformat(),
"last_modified_display": obj.last_modified.strftime("%b %d, %Y %H:%M"), "last_modified_display": _format_datetime_display(obj.last_modified),
"etag": obj.etag, "etag": obj.etag,
}) })
@@ -597,7 +613,7 @@ def stream_bucket_objects(bucket_name: str):
"key": obj.key, "key": obj.key,
"size": obj.size, "size": obj.size,
"last_modified": obj.last_modified.isoformat(), "last_modified": obj.last_modified.isoformat(),
"last_modified_display": obj.last_modified.strftime("%b %d, %Y %H:%M"), "last_modified_display": _format_datetime_display(obj.last_modified),
"etag": obj.etag, "etag": obj.etag,
}) + "\n" }) + "\n"