load public media from cache
This commit is contained in:
parent
7aa05c783a
commit
55b5113fd3
3 changed files with 21 additions and 12 deletions
|
@ -44,7 +44,7 @@ public class ObjectSelect extends AppCompatActivity {
|
||||||
ArrayList Img;
|
ArrayList Img;
|
||||||
//ArrayList object;
|
//ArrayList object;
|
||||||
RecyclerView recyclerView;
|
RecyclerView recyclerView;
|
||||||
String username, password, endpoint, bucket, prefix, location, pdfendpoint, query;
|
String username, password, endpoint, bucket, prefix, location, pdfendpoint, query, policy;
|
||||||
boolean style, isplaylist;
|
boolean style, isplaylist;
|
||||||
String[] filename;
|
String[] filename;
|
||||||
Region region;
|
Region region;
|
||||||
|
@ -321,6 +321,7 @@ public class ObjectSelect extends AppCompatActivity {
|
||||||
pdfread.start();
|
pdfread.start();
|
||||||
}
|
}
|
||||||
} else if (Img.get(position).equals(R.drawable.audiofile) || Img.get(position).equals(R.drawable.videofile)) {
|
} else if (Img.get(position).equals(R.drawable.audiofile) || Img.get(position).equals(R.drawable.videofile)) {
|
||||||
|
simpleProgressBar.setVisibility(View.VISIBLE);
|
||||||
if (isplaylist) {
|
if (isplaylist) {
|
||||||
videoPlayer(null, Name.get(position).toString());
|
videoPlayer(null, Name.get(position).toString());
|
||||||
} else {
|
} else {
|
||||||
|
@ -337,15 +338,21 @@ public class ObjectSelect extends AppCompatActivity {
|
||||||
mycal.add(Calendar.HOUR, videotime);
|
mycal.add(Calendar.HOUR, videotime);
|
||||||
//System.out.println("Expiration date: " + mycal.getTime());
|
//System.out.println("Expiration date: " + mycal.getTime());
|
||||||
expiration = mycal.getTime();
|
expiration = mycal.getTime();
|
||||||
GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest(bucket, prefix + Name.get(position).toString()).withExpiration(expiration);;
|
try {
|
||||||
URL objectURL = s3client.generatePresignedUrl(request);
|
policy = s3client.getBucketPolicy(bucket).getPolicyText();
|
||||||
|
} catch (Exception e) {
|
||||||
|
policy = null;
|
||||||
|
}
|
||||||
|
String objectURL = PolicyCheck.getFileKey(s3client, bucket, prefix + Name.get(position).toString(), expiration, policy);
|
||||||
|
/*GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest(bucket, prefix + Name.get(position).toString()).withExpiration(expiration);;
|
||||||
|
URL objectURL = s3client.generatePresignedUrl(request);*/
|
||||||
|
|
||||||
runOnUiThread(new Runnable() {
|
runOnUiThread(new Runnable() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
// Sending reference and data to Adapter
|
// Sending reference and data to Adapter
|
||||||
videoPlayer(objectURL.toString(), Name.get(position).toString());
|
videoPlayer(objectURL, Name.get(position).toString());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
//System.out.println("tree "+treelevel);
|
//System.out.println("tree "+treelevel);
|
||||||
|
@ -493,6 +500,7 @@ public class ObjectSelect extends AppCompatActivity {
|
||||||
intent.putExtra("isplaylist", isplaylist);
|
intent.putExtra("isplaylist", isplaylist);
|
||||||
intent.putExtra("queue", links);
|
intent.putExtra("queue", links);
|
||||||
intent.putExtra("names", medialist);
|
intent.putExtra("names", medialist);
|
||||||
|
simpleProgressBar.setVisibility(View.INVISIBLE);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -519,6 +527,7 @@ public class ObjectSelect extends AppCompatActivity {
|
||||||
intent.putExtra("videocache", videocache);
|
intent.putExtra("videocache", videocache);
|
||||||
intent.putExtra("buffersize", buffersize);
|
intent.putExtra("buffersize", buffersize);
|
||||||
intent.putExtra("isplaylist", isplaylist);
|
intent.putExtra("isplaylist", isplaylist);
|
||||||
|
simpleProgressBar.setVisibility(View.INVISIBLE);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -774,8 +783,9 @@ public class ObjectSelect extends AppCompatActivity {
|
||||||
//System.out.println("Expiration date: " + mycal.getTime());
|
//System.out.println("Expiration date: " + mycal.getTime());
|
||||||
expiration = mycal.getTime();
|
expiration = mycal.getTime();
|
||||||
for (int i = 0; i < medialist.size(); i++) {
|
for (int i = 0; i < medialist.size(); i++) {
|
||||||
GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest(bucket, prefix+medialist.get(i)).withExpiration(expiration);;
|
//GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest(bucket, prefix+medialist.get(i)).withExpiration(expiration);;
|
||||||
links.add(s3client.generatePresignedUrl(request).toString());
|
//links.add(s3client.generatePresignedUrl(request).toString());
|
||||||
|
links.add(PolicyCheck.getFileKey(s3client, bucket, prefix+medialist.get(i), expiration, policy));
|
||||||
}
|
}
|
||||||
return links;
|
return links;
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,11 +6,10 @@ import com.amazonaws.services.s3.model.GeneratePresignedUrlRequest;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
public class PolicyCheck {
|
public class PolicyCheck {
|
||||||
public static String getFileKey(AmazonS3 s3client, String bucket, String object, Date expiration) {
|
public static String getFileKey(AmazonS3 s3client, String bucket, String object, Date expiration, String policy) {
|
||||||
try {
|
try {
|
||||||
Boolean publicobject;
|
Boolean publicobject;
|
||||||
String fileKey = null;
|
String fileKey = null;
|
||||||
String policy = s3client.getBucketPolicy(bucket).getPolicyText();
|
|
||||||
publicobject = false;
|
publicobject = false;
|
||||||
if(policy.contains("arn:aws:s3:::"+bucket+"/*") && policy.contains("s3:GetObject")) {
|
if(policy.contains("arn:aws:s3:::"+bucket+"/*") && policy.contains("s3:GetObject")) {
|
||||||
publicobject = true;
|
publicobject = true;
|
||||||
|
|
|
@ -35,7 +35,7 @@ import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class Share extends AppCompatActivity {
|
public class Share extends AppCompatActivity {
|
||||||
String username, password, endpoint, bucket, object, location, title, objectlist;
|
String username, password, endpoint, bucket, object, location, title, objectlist, policy;
|
||||||
boolean mediafile, style, publicobject;
|
boolean mediafile, style, publicobject;
|
||||||
TextView expirationtext;
|
TextView expirationtext;
|
||||||
ProgressBar simpleProgressBar;
|
ProgressBar simpleProgressBar;
|
||||||
|
@ -126,7 +126,7 @@ public class Share extends AppCompatActivity {
|
||||||
public void run() {
|
public void run() {
|
||||||
try {
|
try {
|
||||||
//Your code goes here
|
//Your code goes here
|
||||||
String policy = s3client.getBucketPolicy(bucket).getPolicyText();
|
policy = s3client.getBucketPolicy(bucket).getPolicyText();
|
||||||
publicobject = false;
|
publicobject = false;
|
||||||
if(policy.contains("arn:aws:s3:::"+bucket+"/*") && policy.contains("s3:GetObject")) {
|
if(policy.contains("arn:aws:s3:::"+bucket+"/*") && policy.contains("s3:GetObject")) {
|
||||||
publicobject = true;
|
publicobject = true;
|
||||||
|
@ -372,13 +372,13 @@ public class Share extends AppCompatActivity {
|
||||||
objectlist = "";
|
objectlist = "";
|
||||||
List<S3ObjectSummary> objects = result.getObjectSummaries();
|
List<S3ObjectSummary> objects = result.getObjectSummaries();
|
||||||
for (S3ObjectSummary os : objects) {
|
for (S3ObjectSummary os : objects) {
|
||||||
objectlist = objectlist+PolicyCheck.getFileKey(s3client, bucket, os.getKey(), expiration)+"\n";
|
objectlist = objectlist+PolicyCheck.getFileKey(s3client, bucket, os.getKey(), expiration, policy)+"\n";
|
||||||
}
|
}
|
||||||
while (result.isTruncated()) {
|
while (result.isTruncated()) {
|
||||||
result = s3client.listNextBatchOfObjects (result);
|
result = s3client.listNextBatchOfObjects (result);
|
||||||
objects = result.getObjectSummaries();
|
objects = result.getObjectSummaries();
|
||||||
for (S3ObjectSummary os : objects) {
|
for (S3ObjectSummary os : objects) {
|
||||||
objectlist = objectlist+PolicyCheck.getFileKey(s3client, bucket, os.getKey(), expiration)+"\n";
|
objectlist = objectlist+PolicyCheck.getFileKey(s3client, bucket, os.getKey(), expiration, policy)+"\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue