thêm chức năng train trên odc predict trên planetary
This commit is contained in:
@@ -0,0 +1,128 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Test S3 access using Cognito tokens
|
||||
Test truy cập S3 sử dụng Cognito tokens
|
||||
"""
|
||||
|
||||
import sys
|
||||
from cognito_auth import CognitoAuthenticator
|
||||
from datacube.utils.rio import configure_s3_access
|
||||
|
||||
|
||||
def test_cognito_to_s3():
|
||||
"""
|
||||
Complete test: Cognito tokens → AWS credentials → S3 access
|
||||
"""
|
||||
print("=" * 70)
|
||||
print("Test S3 Access Using Cognito Tokens")
|
||||
print("Test Truy Cập S3 Sử Dụng Cognito Tokens")
|
||||
print("=" * 70)
|
||||
|
||||
# Initialize
|
||||
auth = CognitoAuthenticator(region='ap-southeast-1')
|
||||
|
||||
# Load Cognito tokens
|
||||
print("\n[1/5] Loading Cognito tokens from file...")
|
||||
if not auth.load_tokens_from_file('train_files/crediential.txt'):
|
||||
print("✗ Failed to load tokens")
|
||||
return False
|
||||
|
||||
# Show token info
|
||||
print("\n[2/5] Displaying token information...")
|
||||
decoded_id, decoded_access = auth.print_token_info()
|
||||
|
||||
if not decoded_id:
|
||||
print("✗ Invalid tokens")
|
||||
return False
|
||||
|
||||
# Get AWS credentials from Cognito
|
||||
print("\n[3/5] Getting AWS credentials...")
|
||||
print("ℹ Note: Since we don't have Identity Pool ID, using existing credentials")
|
||||
|
||||
# Use existing credentials from file (already exchanged by EASI)
|
||||
if not auth.get_credentials_from_cognito():
|
||||
print("✗ Failed to get AWS credentials")
|
||||
return False
|
||||
|
||||
# Set credentials in environment
|
||||
print("\n[4/5] Configuring environment...")
|
||||
if not auth.set_environment_credentials():
|
||||
print("✗ Failed to set environment")
|
||||
return False
|
||||
|
||||
# Configure datacube S3 access
|
||||
print("\n[5/5] Configuring datacube S3 access...")
|
||||
try:
|
||||
configure_s3_access(
|
||||
aws_unsigned=False,
|
||||
region_name='us-west-2',
|
||||
cloud_defaults=True
|
||||
)
|
||||
print("✓ Datacube S3 access configured")
|
||||
except Exception as e:
|
||||
print(f"⚠ Warning: Could not configure datacube: {e}")
|
||||
|
||||
# Test multiple buckets
|
||||
print("\n" + "=" * 70)
|
||||
print("Testing S3 Bucket Access")
|
||||
print("=" * 70)
|
||||
|
||||
test_buckets = [
|
||||
('sentinel-cogs', 'us-west-2', 'sentinel-s2-l2a-cogs/'),
|
||||
('sentinel-s2-l2a', 'eu-central-1', ''),
|
||||
]
|
||||
|
||||
results = []
|
||||
for bucket_name, region, prefix in test_buckets:
|
||||
print(f"\nTesting: {bucket_name} ({region})")
|
||||
print("-" * 50)
|
||||
# List up to 50 objects (có thể thay đổi số này)
|
||||
success = auth.test_s3_access(bucket_name, region, max_keys=50, prefix=prefix)
|
||||
results.append((bucket_name, success))
|
||||
|
||||
# Summary
|
||||
print("\n" + "=" * 70)
|
||||
print("Summary / Tổng Kết")
|
||||
print("=" * 70)
|
||||
|
||||
print("\nAuthentication Flow:")
|
||||
print(" Cognito Tokens → ✓")
|
||||
print(" AWS Credentials → ✓")
|
||||
print(" Environment Setup → ✓")
|
||||
|
||||
print(f"\nS3 Access Results:")
|
||||
success_count = sum(1 for _, success in results if success)
|
||||
for bucket, success in results:
|
||||
status = "✓" if success else "✗"
|
||||
print(f" {status} {bucket}")
|
||||
|
||||
print(f"\nTotal: {success_count}/{len(results)} buckets accessible")
|
||||
|
||||
if success_count > 0:
|
||||
print("\n✓ SUCCESS: Cognito authentication working!")
|
||||
print("✓ THÀNH CÔNG: Xác thực Cognito hoạt động!")
|
||||
else:
|
||||
print("\n⚠ WARNING: Could not access any S3 buckets")
|
||||
print("⚠ CẢNH BÁO: Không thể truy cập bucket S3 nào")
|
||||
|
||||
print("=" * 70)
|
||||
|
||||
return success_count > 0
|
||||
|
||||
|
||||
def main():
|
||||
try:
|
||||
success = test_cognito_to_s3()
|
||||
sys.exit(0 if success else 1)
|
||||
except KeyboardInterrupt:
|
||||
print("\n\n✗ Test interrupted")
|
||||
sys.exit(1)
|
||||
except Exception as e:
|
||||
print(f"\n✗ Fatal error: {e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user