aws s3にファイルをアップロードするときにアンドロイドで。正常にアップロードされました。しかし、アップロードされたファイルには公の許可はありません。一般からはアクセスできません。ファイルをamazon s3にアップロードする際に許可を設定する方法
TransferObserver transferObserver = transferUtility.upload( "appname"、 "filename"、file);
私は
TransferObserver transferObserver = transferUtility.upload( "ACS-アンドロイド"、 "ファイル名"、ファイル、CannedAccessControlList.PublicRead)としてコードを書き換えます。
パブリックパーミッションへのアクセスには、エラーが表示されます。
エラー:HTTPリクエストを実行できません:書き込みエラー:ssl = 0xb8f43420:システムコール中のI/Oエラー、ピアによる接続リセット。
完全なコードは
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import com.amazonaws.auth.CognitoCachingCredentialsProvider;
import com.amazonaws.mobileconnectors.s3.transferutility.TransferListener;
import com.amazonaws.mobileconnectors.s3.transferutility.TransferObserver;
import com.amazonaws.mobileconnectors.s3.transferutility.TransferState;
import com.amazonaws.mobileconnectors.s3.transferutility.TransferUtility;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.model.AccessControlList;
import com.amazonaws.services.s3.model.CannedAccessControlList;
import com.amazonaws.services.s3.model.GroupGrantee;
import com.amazonaws.services.s3.model.Permission;
import com.amazonaws.services.s3.model.Region;
import java.io.File;
public class MainActivity extends AppCompatActivity {
Button button;
File sdcard = Environment.getExternalStorageDirectory();
File file = new File(sdcard,"filename");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
fileUpload();
}
});
}
private void fileUpload() {
// Initialize the Amazon Cognito credentials provider
CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(
getApplicationContext(),
"xxx:7e4xxx-xxxxxxxxx-xx-48cfc8f79f6", // Identity Pool ID
Regions.REGION // Region
);
AmazonS3 s3 = new AmazonS3Client(credentialsProvider);
s3.setRegion(com.amazonaws.regions.Region.getRegion(Regions.REGION));
TransferUtility transferUtility = new TransferUtility(s3, this);
TransferObserver transferObserver = transferUtility.upload("appname","filename",file,CannedAccessControlList.PublicRead);
transferObserver.setTransferListener(new TransferListener() {
@Override
public void onStateChanged(int id, TransferState state) {
if(state == TransferState.COMPLETED) {
Toast.makeText(MainActivity.this,"Error",Toast.LENGTH_SHORT).show();
}
}
@Override
public void onProgressChanged(int id, long bytesCurrent, long bytesTotal) {
}
@Override
public void onError(int id, Exception ex) {
Log.e("LOGTAG", "Error : " + ex.getMessage());
}
});
}
}
これはまだ発生していますか? 変更されたのは、一般の閲覧許可を追加したことだけですか? – WestonE