π "Unable to locate credentials" μ€λ₯λ?
"Unable to locate credentials" μλ¬λ AWS κ³μ κ³Ό κ΄λ ¨νμ¬ AWS μ격 μ¦λͺ (μΈμ¦ μ 보)μ μ°Ύμ μ μμ λ λ°μνλ μ€λ₯μ΄λ€.
μ΄μ ν¬μ€νΈμμ λ€λ£¨μλ Boto3μ AWS S3 λ²ν·μ μ΄μ©ν λ°μ΄ν° μ λ‘λ μλν μ€ν¬λ¦½νΈλ₯Ό μμ±νλ κ³Όμ μμ λ°μνμμΌλ©°, μ΄λ² ν¬μ€νΈμμλ μ μλ¬μ ν΄κ²° λ°©μμ λ€λ£¨μλ€.
π λ°κ²¬ν "Unable to locate credentials" μ€λ₯μ μ£Όλ μμΈ λ° μ μμ
1. κ³μ μ AWS μ격 μ¦λͺ νμΈ
# AWS μ격 μ¦λͺ
μ€μ
aws_access_key_id = 'μμΈμ€ ν€ ID',
aws_secret_access_key = 'κ³μ μ μν¬λ¦Ώ μμΈμ€ ν€'
μ€ν¬λ¦½νΈ μμ± κ³Όμ μμ AWS μ격 μ¦λͺ μ μ€μ νλ μ μ°¨κ° μλλ°, μ΄λ μν¬λ¦Ώ μμΈμ€ ν€λ μμΈμ€ ν€μ IDλ₯Ό μλͺ» μ λ ₯νκ±°λ, λ μμμ μ§μ΄ λ§μ§ μμΌλ©΄ μμ κ°μ μ€λ₯κ° λ°μνλ€.
μν¬λ¦Ώ μμΈμ€ ν€μ μμΈμ€ ν€λ₯Ό μμ±νμ§ μμ κ²½μ°μλ μμ κ°μ μ€λ₯κ° λ°μν μ μλλ°, μ€ν¬λ¦½νΈλ₯Ό μ¬μ©νκΈ° μ λ°λμ AWS κ³μ μ μμΈμ€ ν€μ μν¬λ¦Ώ μμΈμ€ ν€λ₯Ό μμ±ν΄λμμΌ νλ€.
++ AWS Access Key & μν¬λ¦Ώ μμΈμ€ ν€ μμ± λ° νμΈ λ°©λ²
--> https://docs.aws.amazon.com/powershell/latest/userguide/pstools-appendix-sign-up.html
2. ν¨μ νΈμΆ μ μΈμ¦ μ 보 μ λ¬ μ¬λΆ
def upload_file_to_s3(local_file_path, bucket_name, s3_file_path, aws_access_key_id, aws_secret_access_key):
"""
λ‘컬 νμΌμ S3 λ²ν·μ μ
λ‘λνλ ν¨μ
:param local_file_path: μ
λ‘λν λ‘컬 νμΌμ κ²½λ‘ (μ: "C:\\Users\\USER\\Desktop\\1234.mp3")
:param bucket_name: μ
λ‘λν S3 λ²ν·μ μ΄λ¦
:param s3_file_path: S3 λ²ν· λ΄μμ νμΌμ΄ μ μ₯λ κ²½λ‘ λ° μ΄λ¦ (μ: "uploads/1234.mp3")
:param aws_access_key_id: AWS μ‘μΈμ€ ν€ ID
:param aws_secret_access_key: AWS λΉλ° μ‘μΈμ€ ν€
"""
try:
s3_client = boto3.client('s3', aws_access_key_id=aws_access_key_id, aws_secret_access_key=aws_secret_access_key)
s3_client.upload_file(local_file_path, bucket_name, s3_file_path)
print(f"νμΌμ΄ μ±κ³΅μ μΌλ‘ S3 λ²ν·μ μ
λ‘λλμμ΅λλ€. λ²ν·: '{bucket_name}', κ²½λ‘: '{s3_file_path}'")
except Exception as e:
print(f"νμΌ μ
λ‘λμ μ€ν¨νμ΅λλ€. μ€λ₯ λ©μμ§: {str(e)}")
μ€ν¬λ¦½νΈμμ μ€μ§μ μΈ μ λ‘λ μν μ μννλ ν¨μλ₯Ό νΈμΆν λ, νμν μΈμ¦ μ 보λ₯Ό μΈμλ‘ μ λ¬ν΄μ£Όμ§ λͺ»νλ κ²½μ° μμ κ°μ μλ¬κ° λ°μνλ€.
μ΄ κ²½μ°, AWS μ격 μ¦λͺ μ€μ μ½λλ₯Ό μ€ν¬λ¦½νΈ μμμ νμΌ μ μ₯ κ²½λ‘λ₯Ό μ§μ νλ μ½λμ S3 λ²ν·μ νμΌμ μ λ‘λνλ μ½λ μ¬μ΄μ 볡μ¬νμ¬ λ£μ΄μ£Όλ©΄ λ¬Έμ λ₯Ό ν΄κ²°ν μ μλ€.
# AWS μ격 μ¦λͺ
μ€μ
aws_access_key_id = 'μμΈμ€ ν€ ID',
aws_secret_access_key = 'κ³μ μ μν¬λ¦Ώ μμΈμ€ ν€'
μ μ½λλ₯Ό
β¬οΈ
μλμ²λΌ λ°°μΉ
# S3 λ²ν·μ μ΄λ¦
bucket_name = "giveittome"
# S3 λ²ν· λ΄μμ νμΌμ΄ μ μ₯λ κ²½λ‘ λ° μ΄λ¦
s3_file_path = "hello/test.txt"
<!-- μ¬κΈ°μ ν΄λΉ μ½λ μΆκ° -->
# νμΌμ S3 λ²ν·μ μ
λ‘λ
upload_file_to_s3(local_file_path, bucket_name, s3_file_path, aws_access_key_id, aws_secret_access_key)
++ μλ¬ ν΄κ²° νμ λ°μ΄ν° μ λ‘λ μλν μ€ν¬λ¦½νΈκ° κΆκΈνλ€λ©΄?
--> Boto3 SDKλ₯Ό νμ©ν λ°μ΄ν° μ λ‘λ μλν μ€ν¬λ¦½νΈ μμ± Forward AWS S3 Bucket (https://alim11.tistory.com/398)
'βοΈ Amazon Web Services (AWS)' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[AWS] AWS S3 Bucket μ νμΌ Contents μ½μ΄μ€κΈ° (0) | 2023.09.01 |
---|---|
[AWS] AWS Secret Key μ μΆ μ λμ² λ°©λ² (0) | 2023.08.04 |
[AWS] Boto3 SDKλ₯Ό νμ©ν λ°μ΄ν° μ λ‘λ μλν (Forward AWS S3 Bucket) (0) | 2023.08.02 |
[AWS] AWS Access Key & Secret Access Key μμ± λ°©λ² (0) | 2023.07.23 |