stream-chat-java icon indicating copy to clipboard operation
stream-chat-java copied to clipboard

Alternative way to assign image attachments to a channel?

Open alexmacarthur opened this issue 1 year ago • 1 comments

As far as I can tell, the only way to assign an attachment to a channel is using the “file” property, which is the CDN URL. Those URLs are signed, and so I’m concerned about them expiring after 14 days, and the images would no longer be viewable in the channel. Is this true? Or is there another way to upload attachments to avoid this issue?

image

This does not seem to be the same way you can upload attachments in the Node SDK. There, you can pass attachments directly, which would give me a little more confidence.

const promises = [
  channel.sendImage(
    fs.createReadStream('./cat.png'),
    'cat.jpg',
    'cat/jpg',
    {id: "some-user"}
  ),
 ];
 
 const results = await Promise.all(promises);
 const attachments = results.map(response => {
   return {
     type: 'image',
     thumb_url: response.file,
     asset_url: response.file,
   };
 });

 const response = await channel.sendMessage({
   text: 'I have uploaded things.',
   attachments,
   user
 });

alexmacarthur avatar Nov 26 '24 20:11 alexmacarthur

Hi @alexmacarthur , The attachment URLs will be refreshed if needed when being fetched. See here.

shaljam avatar Nov 29 '24 15:11 shaljam