2016-12-01 1 views
4

아마존 클라우드에 내 안드로이드 스튜디오 2.2.2 라이브러리 프로젝트 게시 안드로이드 aws 문서를 다운로드했습니다. 그러나,이 단계는 나를위한 것이 아닙니다.amazon 클라우드 프로 시저에 안드로이드 라이브러리 게시

아무도 안드로이드 스튜디오 라이브러리 프로젝트를 Amazon 클라우드에 업로드하고 Jcenter 및 Maven과 같은 종속성에 대한 URL을 만드는 다른 방법을 제안 할 수 있습니다.

+0

나는이 aws 튜토리얼을 또한 언급했다. 그것은 이해하기가 분명하지 않다. http://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/ – harikrishnan

답변

0

라이브러리는 서버 일어 서서하고 관리 할 필요없이 개인 메이븐의 repos를 호스팅하는 무료

+0

reply.my 라이브러리를 사용해 주셔서 감사합니다. larsgrefer yar. – harikrishnan

0

쉬운 솔루션을 https://jitpack.io을 사용할 수있는 오픈 소스 인 경우 : 자산을 호스팅하기 위해

가 Amazon S3에서는 먼저 저장소로 사용할 인증 된 버킷을 설정해야합니다. 이것은이 기사의 범위를 벗어나므로, 아마존은이를 수행하는 방법에 대해 상세하게 설명한 몇 가지 훌륭한 글을 가지고있다.

일단 버킷을 생성하면 버킷 정책을 추가하여 인증 사용자가 버킷에서 생성 된 모든 파일에 액세스 할 수있게해야합니다. 내 그룹도 얻을 버킷의 하위 디렉토리에 물건을 올려 수있는 권한을 pixite-받는다는 버킷 목록에 대한 액세스를 가지고 있으며,

{ 
    "Version": "2012-10-17", 
    "Id": "Policy1428433847297", 
    "Statement": [ 
    { 
     "Sid": "Stmt1428433844452", 
     "Effect": "Allow", 
     "Principal": { 
     "AWS": "arn:aws:iam::1234567890:user/maven-user" 
     }, 
     "Action": "s3:ListBucket", 
     "Resource": "arn:aws:s3:::pixite-maven" 
    }, 
    { 
     "Sid": "Stmt1428433844452", 
     "Effect": "Allow", 
     "Principal": { 
     "AWS": "arn:aws:iam::1234567890:user/maven-user" 
     }, 
     "Action": [ 
     "s3:GetObject", 
     "s3:PutObject" 
     ], 
     "Resource": "arn:aws:s3:::pixite-maven/*" 
    } 
    ] 
} 

알 수 있습니다. Amazon의 문서에 따라 원하는대로 제한 할 수 있습니다.

하나의 버킷에서 스냅 샷과 릴리스를 모두 호스팅하는 경우 (해당하는 것처럼) 해당 디렉토리를 버킷의 루트에 추가하는 것이 좋습니다. 또 다른 옵션은 독립적으로 관리 할 수있는 두 개의 버킷 (하나는 스냅 샷, 다른 하나는 릴리스)을 갖는 것입니다.

다음 단계는 프로젝트에 gradle 2.4를 사용하는 것입니다. 이것은 gradle-wrapper.properties 파일을 편집하거나 루트 build.gradle 파일에 다음 코드 단편을 추가하고 ./gradlew wrapper를 실행하여 수행 할 수 있습니다. 당신은 일반적으로 저장소를 설정 곳 (내 루트 빌드 스크립트에 allprojects {} 블록을 사용)에

task wrapper(type: Wrapper) { 
    gradleVersion = '2.4' } 

지금, 당신이 액세스해야하는, 단순히 받는다는 저장소로 아마존 S3 버킷을 추가합니다. 저장소의 URL이 s3://[bucket name]/[path] 얼마나

repositories { 
     maven { 
      url "s3://pixite-maven/releases" 
      credentials(AwsCredentials) { 
       accessKey AWS_ACCESS_KEY 
       secretKey AWS_SECRET_KEY 
      } 
     } 
     maven { 
      url "s3://pixite-maven/snapshots" 
      credentials(AwsCredentials) { 
       accessKey AWS_ACCESS_KEY 
       secretKey AWS_SECRET_KEY 
      } 
     } 



    mavenLocal() 
    jcenter() 
} 

알 수 있습니다. 또한 이것은 개인 저장소이므로 Maven 블록에 내 AwsCredentials를 포함합니다. 실제 AWS_ACCESS_KEYAWS_SECRET_KEY을 직접 빌드 파일에 넣을 수는 있지만 그렇게하지 마십시오! 빌드 파일에는 자격 증명이 포함되어서는 안됩니다. 그러면 실제로 액세스를 관리 할 수 ​​없기 때문입니다. 이 값들은 내 빌드 파일에있는 것과 정확히 동일하므로 홈 디렉토리의 사용자 별 gradle.properties 파일에서 읽을 수 있습니다. 내가 ~/.gradle/gradle.properties에 실제 값을 설정 곳은 다음과 같습니다 당신에게 내부 받는다는에 대한 합리적인 접근 제어 옵션을 허용, 모든 아마존 S3에 종속성을 호스팅하는 데 필요한입니다

관리 오버 헤드없이 호스팅.

: 오픈 소스 라이브러리

BinTray (jcenter)와 메이븐 중앙에 대한 아니 솔루션은 오픈 소스 코드를 배포 할 수있는 장소입니다. 이를 통해 라이브러리 사용자는 프로젝트 전체에 사용자 정의 저장소를 추가 할 필요없이 쉽게 액세스 할 수 있습니다. 이는 인증 된 저장소가 필요하거나 소스 코드 (ala Fabric)없이 라이브러리를 배포해야하는 경우에만 솔루션입니다. 이에 대한 자세한 내용은

다음 링크를 확인 :

An S3 repository can be configured to authenticate using AWS's EC2 instance metadata.

S3 Repositories can be configured with credentials providers

Setting Up & Publishing Private Amazon S3 Maven Repository Android Library

코딩 해피! 건배!!!