It sounds like you want to use signed URLs. Since you're using storages,
this should be the default if you use the "url" property. E.g.,
signed_url = status_obj.image.url
Then keep the file itself private. No one will be able to access it
without a signed URL, and you can control who gets a signed URL in your
Django app.
_Nik
On 2/6/2015 7:51 AM, Kakar Nyori wrote:
I am using amazon s3 to store uploaded user images. My problems are:
- If I permit or grantee for me, I cannot upload or download the contents.
- If I permit or grantee for everyone, all the users and (especially)
anonymous users will be able to see the contents, which I don't want.
So, my question is, what do I do so that only the users from my
website can upload, download and delete the content?
In that I have conditions that:
1. Only the users (user1, user2, user3, ...) who are following the user
(user0) can download/view the content?
2. Only the user who uploaded the view can delete the content.
models.py:
* def get_upload_file_name(instance, filename):*
*return "uploaded_files/%s_%s" %(str(time()).replace('.','_'), filename)*
*
*
* PRIVACY = (*
* ('H','Hide'),*
* ('F','Followers'),*
* ('A','All'),*
* )*
*
*
* class Status(models.Model):*
* body = models.TextField(max_length=200)*
* image = models.ImageField(blank=True, null=True,
upload_to=get_upload_file_name)*
* privacy = models.CharField(max_length=1,choices=PRIVACY,
default='F')*
* pub_date = models.DateTimeField(auto_now_add=True,
auto_now=False)*
* user = models.ForeignKey(User)*
settings.py:
*DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'*
*
*
*AWS_ACCESS_KEY_ID = 'AKIAJQWEN46SZLYWFDMMA'*
*
*
*AWS_SECRET_ACCESS_KEY = '2COjFM30gC+rty571E8eNSDYnTdV4cE3aEd1iFTH'*
*
*
*AWS_STORAGE_BUCKET_NAME = 'yesme'*
--
You received this message because you are subscribed to the Google
Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to [email protected]
<mailto:[email protected]>.
To post to this group, send email to [email protected]
<mailto:[email protected]>.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/cbc5c0d5-cc42-4a67-9414-2fb74fceed1e%40googlegroups.com
<https://groups.google.com/d/msgid/django-users/cbc5c0d5-cc42-4a67-9414-2fb74fceed1e%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Django
users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/54D4FCDA.3030207%40consbio.org.
For more options, visit https://groups.google.com/d/optout.