October 6, 2016 · S3 IAM Auth0

AWS S3'e Sunucu Olmadan Dosya Yükleme

FileUploadToS3

Daha önceden bu konuyu profil resmini S3 nasıl yükleriz konusunu yöntemleri ile biraz değinmiştim.

Profil Resmini AWS S3 Nasıl Yükleriz ?

Bugün 3ncü madde olan Serverless ile Javascript SDK'sı yöntemini biraz daha derinlemesine anlatacağım. Benim böyle bir yapıdan beklentim;

Not: S3 Yükleme işlemini Browser Based Upload Signature V2, V4 olsada 2ci,3ncü ve 4ncü adımlarda maddeleri sağlayan bir yöntem değildi..

Aşağıdaki Linkteki Örneği uyguladığımda yukarıdaki beklentilerimin karşılandığını gördüm..
https://github.com/auth0-samples/auth0-s3-sample

Burada en önemli konu IAM'dan tanımladığımız Policy tanımlama Bu Policy'de ${saml:sub} aslında bir değişken ve RunTime yaptığımız request bu değişkenin yerine userId bilgisi ile değiştirerek dropboxclone klasörü altında userId isminde bir klasör daha oluşturarak dosyayı o klasörün altına atmanı sağlıyor.

Aynı şekilde userId ait klasör içerisindeki dosyaların listelenmesine sadece ilgili userId login olmuş kullanıcıya izin veriyor.
{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowEverythingOnSpecificUserPath", "Effect": "Allow", "Action": [ "*" ], "Resource": [ "arn:aws:s3:::YOUR_BUCKET/dropboxclone/${saml:sub}", "arn:aws:s3:::YOUR_BUCKET/dropboxclone/${saml:sub}/*"] }, { "Sid": "AllowListBucketIfSpecificPrefixIsIncludedInRequest", "Action": ["s3:ListBucket"], "Effect": "Allow", "Resource": ["arn:aws:s3:::YOUR_BUCKET"], "Condition":{ "StringEquals": { "s3:prefix":["dropboxclone/${saml:sub}"] } } } ] }

GitHub'dan indirdiğımiz bu dosya içerisinde JS/config.js dosyası içerisinde Auth0 ve AWS Configurasyonları yer alıyor..

bucket S3 bucket ismi

folder_prefix S3 bucket içerisine hangi klasör içerine dosyaları upload edecekseniz bu ismi verin...

FileUploadToS3

role, principal, domain, cliendID ve targetClientID kısmını Role tanımlama, principal tanımlama kısımlarını aşağıdaki linkteki yazıda anlattım.

Serverless Webapp with Auth0, ApiGateway, Lambda, DynamoDB yazımda

Sonuç olarak bu tanımlamarıda yaptıktan sonra S3 üzerine GitHub'dan indirmiş olduğunuz dosyaları js/config.js değiştirerek S3 foldera atın Örnek. S3 üzerinde statik web sayfası

Artık S3 Dropbox hazır. Ben şimdiden kullanmaya başladım :) Süper kolaylık..

FileUploadToS3

  • LinkedIn
  • Tumblr
  • Reddit
  • Google+
  • Pinterest
  • Pocket
Comments powered by Disqus