Comments (4)
hi @musixite Your code is working for aws-sdk-v1, since carrierwave-aws relies on aws-sdk v2, it is not working anymore. However, in v2, aws-sdk has a method :presigned_url defined in Aws::S3::Object, you can use this method to construct the direct download url for a s3 object:
s3 = Aws::S3::Resource.new
# YOUR-OBJECT-KEY should be the relative path of the object like 'uploads/user/logo/123/pic.png'
obj = s3.bucket('YOUR-BUCKET-NAME').object('YOUR-OBJECT-KEY')
url = obj.presined_url(:get, expires_in: 3600, response_content_disposition: "attachment; filename='FILENAME'")
from carrierwave-aws.
You don't get direct access to the S3 object, but you can add custom attributes to it with aws_read_options
. This is something you can do for a particular uploader:
configure do |config|
config.aws_read_options = {
content_disposition: 'attachment; filename='hardcoded_filename.mp3'
}
end
That will help with reading, but that still requires pulling the data down. Instead, you may want to set the content_disposition
when writing the content. In that case, use:
configure do |config|
config.aws_write_options = {
content_disposition: 'attachment'
}
end
Hope that helps!
from carrierwave-aws.
I tried to do what you mentioned but this doesn't change the fact that it copies the file first which takes 10-15sec to process. First option is not possible since I need to retrieve the filename from the database.
Still looking!
Thanks for your help,
- Vincent
from carrierwave-aws.
If you write the header along with the content you can just use the generated url rather than copying the file locally. If you have to use read
there is no way around downloading the file to the local server.
from carrierwave-aws.
Related Issues (20)
- Version bump for Carrierwave 2.0 HOT 3
- Carrierwave / AWS S3 Upload Endpoints HOT 9
- move_options triggers undefined method `>=' for nil:NilClass HOT 6
- Image updates don't work when images with same name are reuploaded HOT 1
- Uploads fail HOT 2
- uploader fails, returns 400 Bad Request errors HOT 5
- Url returns nill for versions uploaded in background HOT 1
- Release new version for Carrierwave 2.1 HOT 2
- Configure with IAM Role HOT 4
- xlsx content-type is wrong HOT 3
- Allow to use a directory inside the bucket HOT 3
- AWS SDK 2.0 is EOL HOT 10
- supports DigitalOcean Spaces? HOT 1
- Caching seems to not work HOT 1
- Could not read file contents in test environment HOT 2
- content-type octet-stream issue HOT 5
- Setting ACLs can be turned off
- Ready to CarrierWave 3.0? HOT 2
- Support for "path_style" OFFICIALLY with a flag for the s3 hosts that use MinIO, DigitalOceanSpaces, and other software that support S3 API but not the default S3 virtualhost bucket names in the URL HOT 2
- Updating a file where version has overridden `full_filename` fails HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from carrierwave-aws.